c - 在 C 中定义枚举

标签 c linux enums

我有点惊讶以下代码无法编译。你能解释一下吗? (头文件)

enum CarType_e {
    CAR_BMW = 0,
    CAR_KIA,
    CAR_HONDA,
    CAR_FORD,
    CAR_MERCEDES
};

int build_car(CarType_e type);

然后我得到以下错误:

In file included from car.c:19:0:
car.h:35:16: error: unknown type name ‘CarType_e’

这是 gcc 版本 4.7.3

最佳答案

你有两个选择,使用

typedef enum {
  CAR_BMW = 0,
  CAR_KIA,
  CAR_HONDA,
  CAR_FORD,
  CAR_MERCEDES
} CarType_e;

或者,您可以使用 -

int build_car(enum CarType_e type);

我在 linux 上用 gcc 测试了这两个。

关于c - 在 C 中定义枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665884/

相关文章:

c++ - Qt 无法手动连接到任何插槽(UI 编辑器)

.net - Enum.GetName 与 Enum.ToString

c++ - 有没有办法对字符串中的字符使用枚举? C++

c - 为什么除法的结果为零而不是小数?

C 获取单词文本文件中的行数

java - 部署spring boot应用程序的正确方法是什么

enums - 匹配时修改枚举中的值

c++ - 解析在 XML 中的 C/C++ 头文件中定义的嵌套结构/union

c - 不知道为什么 for 循环不打印,已经检查了很多次格式是正确的

linux - 树莓派 PCM 设备驱动