为什么使用<stdbool.h>而不是_Bool?

CIs*_*ies 7 c boolean

每当我需要布尔类型时,我被告知创建一个或更好的使用stdbool.h.

stdbool.h使用以来typedef bool _Bool,是否有理由使用标题而不仅仅使用类型_Bool?它只是为了额外的宏(/* #define true 1 #define false 0 */)吗?

Sto*_*ica 6

添加到语言中的明显类型是bool.但不幸的是,编写了大量包含bool在其他形状和形式中的代码.回想一下,仅在C99中添加了对布尔类型的支持.

所以C语言委员会别无选择,只能为它取出一个保留的标识符(_Bool).但是,由于明显的类型名称选择仍然相同,stdbool.h因此添加了允许用户显而易见的名称.这样,如果您的代码没有自酿bool,您可以使用内置的代码.

stdbool.h如果你不受现有家庭酿造的约束,那么确实可以使用bool.它将是标准类型,具有类型带来的所有好处.