extern enum合理吗
时间: 2024-09-10 15:26:31 浏览: 81
iOS开发编码规范.doc
在C和C++等编程语言中,`extern` 关键字用于声明一个变量或者函数的链接属性,表示该变量或者函数具有外部链接属性,即在其他的文件中也可以访问。而 `enum` 关键字用于声明枚举类型,枚举类型是一种用户定义的数据类型,它包含了一组命名的整型常量。
将 `extern` 和 `enum` 结合使用,通常是在一个头文件中声明一个全局的枚举类型,以便在多个源文件中共享。这样的做法是合理的,尤其是在需要在多个编译单元(编译时产生的单个代码文件)之间共享一组命名常量时。
例如,可以这样声明一个全局枚举类型:
```c
// 在头文件 myEnum.h 中声明
#ifndef MYENUM_H
#define MYENUM_H
// 使用 extern 声明全局枚举
extern enum Color {
RED,
GREEN,
BLUE
};
#endif
```
在另一个源文件中,可以包含这个头文件,并使用这个全局枚举类型:
```c
#include "myEnum.h"
void printColor(enum Color c) {
switch (c) {
case RED:
printf("The color is red.\n");
break;
case GREEN:
printf("The color is green.\n");
break;
case BLUE:
printf("The color is blue.\n");
break;
}
}
```
通过 `extern` 声明,`Color` 枚举类型成为了全局可见,使得不同的源文件可以访问和使用这个枚举类型。
阅读全文