有人能解释一下 C 语言中 _Bool和 bool数据类型的区别吗?
_Bool
bool
例如:
_Bool x = 1; bool y = true; printf("%d", x); printf("%d", y);
没有区别。
bool是一个在 stdbool.h中扩展到 _Bool的宏。
stdbool.h
而 true是一个在 stdbool.h中扩展为1的宏
true
这些数据类型是在 C99中添加的。因为在 C99之前没有保留 bool,所以他们使用 _Bool关键字(这是保留的)。
如果包含 stdbool.h,则 bool是 _Bool的别名。基本上,包含 stdbool.h头部表示您的代码可以接受标识符 bool为“保留”,也就是说,您的代码不会将其用于自己的目的(类似于标识符 true和 false)。
false