c警告[Pe188]:枚举类型与其他类型混合
我得到警告: 警告[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类型 每个运算符(大于),= 如果指
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
respbool
在stdbool.h
中键入宏和宏!并提供一个!目前,你似乎尝试用C++编译器编译C代码。不要使用一些自制的布尔!使用标准的\u Bool
respbool
在stdbool.h
中键入宏和宏!并提供一个!目前,看起来你尝试用C++编译器编译C代码。
typedef enum{
FALSE = 0;
TRUE= 1;
}BOOL;