c警告[Pe188]:枚举类型与其他类型混合

c警告[Pe188]:枚举类型与其他类型混合,c,warnings,C,Warnings,我得到警告: 警告[Pe188]:枚举类型与其他类型混合 地址: 但如果我将其替换为: if(CurrentTime - TimerX > TIMEOUT_X) { ErrorFlag = TRUE; } 设置ErrorFlag的第一种方法有什么问题 编辑: 我有一个本地枚举: typedef enum{ FALSE = 0; TRUE= 1; }BOOL; 根据C11,第§6.5.8章(重点部分),并且ErrorFlag属于BOOL类型 每个运算符(大于),= 如果指

我得到警告:

警告[Pe188]:枚举类型与其他类型混合

地址:

但如果我将其替换为:

if(CurrentTime - TimerX > TIMEOUT_X)
{
  ErrorFlag = TRUE;
}
设置
ErrorFlag
的第一种方法有什么问题

编辑

我有一个本地
枚举

typedef enum{
   FALSE = 0;
   TRUE= 1;
}BOOL;

根据
C11
,第§6.5.8章(重点部分),并且
ErrorFlag
属于
BOOL
类型

每个运算符
(大于),
=
如果指定的关系为真,则(大于或等于)应产生1,如果为真,则产生0 false.107)结果的类型为
int


可能与
TRUE
的类型不同,它似乎是您代码的本地
枚举值。

根据
C11
,第§6.5.8章(重点)

每个运算符
(大于),
=
如果指定的关系为真,则(大于或等于)应产生1,如果为真,则产生0 false.107)结果的类型为
int


可能与
TRUE
的类型不同,后者似乎是代码的本地
枚举值。

是,正确。但是有没有办法使用枚举的元素值来设置枚举,在我的例子中,0为
FALSE
,1为
TRUE
。对于
FALSE
,可能类似于
BOOL(0)
?枚举常量是
int
@user694733:两者都是错误的建议@奥拉夫先生,如果我在这里遗漏了什么,很抱歉,但是我相信
enum
s与普通的老式
int
是不同的类型,不是吗?@SouravGhosh:不在C中(参见我的其他评论)!这就是为什么我们应该坚持a。是的,正确。但是有没有办法使用枚举的元素值来设置枚举,在我的例子中,0为
FALSE
,1为
TRUE
。对于
FALSE
,可能类似于
BOOL(0)
?枚举常量是
int
@user694733:两者都是错误的建议@奥拉夫先生,如果我在这里遗漏了什么,很抱歉,但是我相信
enum
s与普通的老式
int
是不同的类型,不是吗?@SouravGhosh:不在C中(参见我的其他评论)!这就是为什么我们应该坚持a。不要使用一些自制布尔值!使用标准的
\u Bool
resp
bool
stdbool.h
中键入宏和宏!并提供一个!目前,你似乎尝试用C++编译器编译C代码。不要使用一些自制的布尔!使用标准的
\u Bool
resp
bool
stdbool.h
中键入宏和宏!并提供一个!目前,看起来你尝试用C++编译器编译C代码。
typedef enum{
   FALSE = 0;
   TRUE= 1;
}BOOL;