2 wuqi1003 wuqi1003 于 2016.04.05 11:06 提问

C语言BOOL变量是不是用枚举更好一些?

我是写单片机C语言程序的。
我看一般定义BOOL是:
typedef unsigned int BOOL;
#define TRUE 1
#define FALSE 0

我自己一般是用枚举定义BOOL:
typedef enum{
FALSE;
TRUE;
} BOOL;

实际应用中两者没发现啥区别,都是
BOOL flag=TRUE;

我自己感觉用枚举的更好一些,能够避免对BOOL变量赋值时出现FALSE和TRUE以外的数值,因为是枚举嘛,会报错,能够提醒程序员。
想看看大家意见,枚举的这种方法有没有我没想到的隐患?为啥VC6这些大平台都不用这种呢?

3个回答

CSDNXIAOD
CSDNXIAOD   2016.04.05 11:15

C语言中的BOOL变量
C语言中的bool变量
c语言中的bool变量
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq423399099
qq423399099   Ds   Rxr 2016.04.05 11:57

宏定义在编译阶段之间就已经展开,多半是为了完成“代码缩减”(某些时候有点像函数)或者“程序的易于维护性能”(某些时候有点像全局变量)。
而枚举类型是为了实现限制输入。 另外,枚举成员只能是整形变量。

ReturnForever
ReturnForever   2016.04.05 23:54

用枚举不好, 用宏比较好一点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!