C99 布尔数据类型?
Posted
技术标签:
【中文标题】C99 布尔数据类型?【英文标题】:C99 boolean data type? 【发布时间】:2011-06-13 16:00:15 【问题描述】:什么是 C99 布尔数据类型以及如何使用它?
【问题讨论】:
【参考方案1】:包含<stdbool.h>
标头
#include <stdbool.h>
int main(void)
bool b = false;
宏 true
和 false
分别扩展为 1
和 0
。
部分7.16
布尔类型和值< stdbool.h >
1 标头<stdbool.h>
定义了四个宏。
2 宏
布尔型
扩展为 _Bool。
3 其余三个宏适用于#if 预处理指令。他们
是
true : 扩展为整数常量 1,
false:扩展为整数常量 0,并且
__bool_true_false_are_defined
展开为整数常量 1。
4 尽管有 7.1.3 的规定,但程序可能未定义,并且可能随后
重新定义宏 bool、true 和 false。
【讨论】:
还应该注意的是,转换为_Bool
(通过赋值、强制转换等)实际上是通过在表达式前面加上!!
。【参考方案2】:
请在DaniWeb 上找到的相关线程上查看答案。
摘录并在此引用,方便参考:-
c99中新关键字的使用
_Bool:C99 的布尔类型。仅在以下情况下才建议直接使用 _Bool 维护已经存在的遗留代码 为 bool、true 或 错误的。否则,这些宏是 在
<stdbool.h>
中标准化 标题。包括那个标题和你 可以像你一样使用 bool C++。
#include <stdio.h>
#include <stdbool.h>
int main ( void )
bool b = true;
if ( b )
printf ( "Yes\n" );
else
printf ( "No\n" );
return 0;
【讨论】:
+1 用于解释为什么_Bool
与 bool
一起存在。对理解很有帮助。以上是关于C99 布尔数据类型?的主要内容,如果未能解决你的问题,请参考以下文章