c/c++细节知识整理
这篇文章总结了部分c/c++琐碎的细节知识。
目录如下:
知识点出处较多,无法一一列举,向原作者致敬。
(一)bool类型
在c99标准以前,c语言并没有定义bool类型。如果需要使用则一般自己定义如下:
enum bool{ false = 0, true = 1 }
或者
typedef int bool #define false 0 #define true (!(false))
c99标准为c语言增加了布尔类型。
但是由于历史上很多项目都使用了类似上面提到的方法定义了自己的bool,为了避免冲突,c99规定将_BOOL作为关键字来表示布尔类型。能够将_BOOL定为关键字是因为在c99之前规定了_BOOL作为保留关键字,避免了冲突。
同时c99在标准头文件<stdbool.h>中为_BOOL定义了一个别名(alias)作为方便的替代,这个别名就是bool。如果你的项目中没有自己定义过bool,那么包含了该头文件之后,就可以用bool来表示布尔类型了。
但是必须注意区分:_BOOL是c语言的关键字(keywords),而bool只是一个别名(alias)。