包含windows h(C)时需要一个标识符

包含windows h(C)时需要一个标识符,c,enums,typedef,C,Enums,Typedef,当包含windows.h库时,我突然发现了一个奇怪的错误 注意:当我没有使用windows.h时,程序运行得很好。代码如下: 只有true和false枚举未编译。。为什么呢? 非常感谢大家。主要是因为TRUE和FALSE已经在“windows.h”中定义为宏(或包含在其中) 比如说,在某个地方 #define TRUE (1) 该代码会在引发语法错误的enum声明中被替换。主要原因是TRUE和FALSE已在“windows.h”中定义为宏(或包含在其中) 比如说,在某个地方 #define

当包含windows.h库时,我突然发现了一个奇怪的错误

注意:当我没有使用windows.h时,程序运行得很好。代码如下:

只有true和false枚举未编译。。为什么呢?
非常感谢大家。

主要是因为
TRUE
FALSE
已经在
“windows.h”
中定义为宏(或包含在其中)

比如说,在某个地方

#define TRUE (1)

该代码会在引发语法错误的
enum
声明中被替换。

主要原因是
TRUE
FALSE
已在
“windows.h”
中定义为宏(或包含在其中)

比如说,在某个地方

#define TRUE (1)

该代码在引发语法错误的
enum
声明中被替换。

TRUE和FALSE通常被定义为-1和0(或者可能是1和0)。因此,当编译器的第一个过程进行替换时,将给出编译器的下一个过程:

typedef enum{ -1, 0 }bools;

这显然是无效的语法。

TRUE和FALSE通常被定义为-1和0(或者可能是1和0)。因此,当编译器的第一个过程进行替换时,将给出编译器的下一个过程:

typedef enum{ -1, 0 }bools;
这显然是无效的语法