C 中_Bool 和 Bool 类型的区别?

有人能解释一下 C 语言中 _Boolbool数据类型的区别吗?

例如:

 _Bool x = 1;
bool y = true;


printf("%d", x);
printf("%d", y);
63611 次浏览

没有区别。

bool是一个在 stdbool.h中扩展到 _Bool的宏。

true是一个在 stdbool.h中扩展为1的宏

这些数据类型是在 C99中添加的。因为在 C99之前没有保留 bool,所以他们使用 _Bool关键字(这是保留的)。

如果包含 stdbool.h,则 bool_Bool的别名。基本上,包含 stdbool.h头部表示您的代码可以接受标识符 bool为“保留”,也就是说,您的代码不会将其用于自己的目的(类似于标识符 truefalse)。