C没有任何内置布尔类型。在C语言中使用它们的最佳方式是什么?


当前回答

C中的布尔值是一个整数:假为零,真为非零。

另请参见布尔数据类型,C节,C++,Objective-C,AWK。

其他回答

可以使用_Bool,但返回值必须是整数(1表示真,0表示假)。但是,建议在C++中包含和使用bool,如中所述这个来自daniweb论坛的回答,以及来自另一个stackoverflow问题的回答:

_布尔:C99的布尔类型。只有在维护已经为Bool、true或false定义宏的遗留代码时,才建议直接使用_Bool。否则,这些宏将在标题中标准化。包含该标头,您可以像在C++中一样使用bool。

在布尔运算中,任何非零的值都被计算为真,因此您可以

#define TRUE 1
#define FALSE 0

并使用常数。

您可以使用一个字符或另一个小数字容器。

伪码

#define TRUE  1
#define FALSE 0

char bValue = TRUE;

如果使用C99,则可以使用_Bool类型。不需要#includes。不过,您确实需要将其视为整数,其中1为真,0为假。

然后可以定义TRUE和FALSE。

_Bool this_is_a_Boolean_var = 1;


//or using it with true and false
#define TRUE 1
#define FALSE 0
_Bool var = TRUE;
typedef enum {
    false = 0,
    true
} t_bool;