C99布尔数据类型?


Answers:


109

包含<stdbool.h>标题

#include <stdbool.h>

int main(void){
  bool b = false;
}

truefalse扩展到10分别。

7.16 布尔类型和值< stdbool.h >

  • 1标头定义了<stdbool.h>四个宏。
  • 2宏
    • bool扩展为_Bool。
  • 3其余三个宏适用于#if预处理指令。他们是
    • true:扩展为整数常数1
    • false:扩展为整数常量0,并且
    • __bool_true_false_are_defined扩展为整数常量1。
  • 4尽管有7.1.3的规定,程序仍可能无法定义宏,然后重新定义布尔,真和假宏。

17
还应注意,_Bool通过在表达式前加上,可以有效地转换为(通过赋值,强制转换等)!!
R .. GitHub停止帮助ICE,

52

请在DaniWeb上的此相关线程上检查出答案。

此处提取并引用以方便参考:-


在c99中使用新关键字

_Bool:C99的布尔类型。仅当您要维护已为bool,true或false定义宏的旧代码时,才建议直接使用_Bool。否则,这些宏将在<stdbool.h> 标头中标准化。包含该标头,就可以像在C ++中一样使用bool。

#include <stdio.h>
#include <stdbool.h>

int main ( void )
{
  bool b = true;

  if ( b )
    printf ( "Yes\n" );
  else
    printf ( "No\n" );

  return 0;
}


18
+1解释为什么_Bool与一起存在bool。了解它非常有帮助。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.