我注意到Linux内核代码使用bool,但是我认为bool是C ++类型。布尔是标准C扩展名(例如ISO C90)还是GCC扩展名?
bool
当前C-C99中存在,但C89 / 90中不存在。
在C99中,本机类型实际上称为_Bool
,bool
而是在中定义的标准库宏stdbool.h
(有望解析为_Bool
)。类型的对象_Bool
持有0或1,而true
和false
也是来自的宏stdbool.h
。
注意,顺便说一句,这意味着C预处理器将解释#if true
为#if 0
除非stdbool.h
包含在内。同时,需要C ++预处理器才能本地识别true
为语言文字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句