枚举C,全局变量错误:变量具有初始值但不完整的类型

时间:2017-07-11 02:49:27

标签: c enums global-variables typedef extern

我使用enum在C中使用以下代码在头文件中包含布尔变量:

enum myBool { FALSE = 0, TRUE = 1}; typedef enum _myBool Bool;

然后我用:extern Bool low;

定义了一些全局Bool变量

然后当我尝试使用.c在另一个Bool low = FALSE文件中将变量初始化为false时,我得到错误变量'low'有初始化程序但是类型不完整。

我该如何解决这个问题?非常感谢!!

2 个答案:

答案 0 :(得分:1)

您已将枚举定义为myBool而不是_myBool,因此您需要更改

typedef enum _myBool Bool;

typedef enum myBool Bool;

答案 1 :(得分:0)

  

然后我用:extern Bool low;

定义了一些全局Bool变量

所以你已经在另一个文件中声明了它。否则你会得到链接器错误