为了账号安全,请及时绑定邮箱和手机立即绑定

布尔值的候选类型是什么?

布尔值的候选类型是什么?

C++
慕姐1479101 2017-12-05 22:40:22
为什么它不是一个标准类型?我应该用#define或enum定义true和false值么?
查看完整描述

1 回答

?
慕用4063026

TA贡献195条经验 获得超115个赞

C 语言没有提供标准的布尔类型, 部分因为选一个这样的类型涉及最好由程序员决定的空间/时间折衷。(使用int 可能更快, 而使用char 可能更节省数据空间。然而, 如果需要和int 反复转换, 那么小类型也可能生成更大或更慢的代码。)使用#define 还是枚举常数定义true/false 可以随便, 无关大雅(参见问题2.16 和17.8)。使用以下任何一种形式
   #define TRUE 1 #define YES 1
   #define FALSE 0 #define NO 0
enum bool {false, true}; enum bool {no, yes};

或直接使用1 和0 , 只要在同一程序或项目中一致即可。如果你的调试器在查看变量的时候能够显示枚举常量的名字, 可能使用枚举更好。有些人更喜欢这样的定义
   #define TRUE (1==1)
   #define FALSE (!TRUE)
或者定义这样的“辅助” 宏
   #define Istrue(e) ((e) != 0)

查看完整回答
反对 回复 2017-12-06
  • 1 回答
  • 0 关注
  • 932 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信