关于bool型变量

franky1006 2011-12-09 11:09:20
大家好,我是C语言新手,遇上一个问题:一个变量a占用一个字节,但是对a的注释却是:1允许;0禁止,我可不可以这样定义:
bool a;

如果是不可以,要怎么定义,请高手指教
...全文
266 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪头小哥 2011-12-09
  • 打赏
  • 举报
回复
霸气~~~~我就喜欢这样的人~~~
[Quote=引用 8 楼 frankhb1989 的回复:]

哪来这么多忽悠的。。看清版面,是C不是C++。。
除了我和4L、7L以外全在误导。。
顺便,matrix67那篇说的_Bool也是C99的,非C++实现中的<stdbool.h>一般也就是typedef _Bool bool;之类,C89可没要求支持。如果用VC6之类的过时环境,最好还是扔了。
[/Quote]
狂且 2011-12-09
  • 打赏
  • 举报
回复
如果是 C99 的编译器就添加 #include <stdbool.h> 然后就可以使用 bool i = false/true;

不加头文件可以使用 _Bool i = 0/1; 但这时 false 和 true 就不可以用了. 当然你可以自己宏定义.
daviddb7 2011-12-09
  • 打赏
  • 举报
回复
直接char,哪管那么多环境之类的问题
FrankHB1989 2011-12-09
  • 打赏
  • 举报
回复
哪来这么多忽悠的。。看清版面,是C不是C++。。
除了我和4L、7L以外全在误导。。
顺便,matrix67那篇说的_Bool也是C99的,非C++实现中的<stdbool.h>一般也就是typedef _Bool bool;之类,C89可没要求支持。如果用VC6之类的过时环境,最好还是扔了。
nice_cxf 2011-12-09
  • 打赏
  • 举报
回复
不行吧,bool占几个字节是根编译器有关,VC似乎是占4个字节吧?占一个字节用unsighed char就可以了
FrankHB1989 2011-12-09
  • 打赏
  • 举报
回复
如果你非要用1字节的bool,自己typedef unsigned char bool;,但最好不要那么做。bool在C++中是内建类型,在C不是;C99包含<stdbool.h>可以用bool。但事实上,考虑时间上的效率等原因,bool并不保证是1个字节的。清楚起见,可以声明成其它名称。
淡水鱼大魔王 2011-12-09
  • 打赏
  • 举报
回复
OK,没问题的!
飞旭 2011-12-09
  • 打赏
  • 举报
回复
可以这样定义,
布尔型的就占一个字节。
一把菜刀 2011-12-09
  • 打赏
  • 举报
回复
肯定可以的
bEst_02 2011-12-09
  • 打赏
  • 举报
回复
可以的

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧