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


当前回答

如果使用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;

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

#define TRUE 1
#define FALSE 0

并使用常数。

现在C99支持布尔类型,但需要#include<stdbool.h>。

例子:

#include <stdbool.h>

int main() 
{ 
    bool arr[2] = {true, false}; 

    printf("%d\n", arr[0] && arr[1]);
    printf("%d\n", arr[0] || arr[1]);

    return 0; 
} 

输出:

0
1

您可以简单地使用#define指令,如下所示:

#define TRUE 1
#define FALSE 0
#define NOT(arg) (arg == TRUE)? FALSE : TRUE
typedef int bool;

使用方法如下:

bool isVisible = FALSE;
bool isWorking = TRUE;
isVisible = NOT(isVisible);

等等

C有一个布尔类型:bool(至少在过去10(!)年)

包括stdbool.h和true/false将按预期工作。