C语言的布尔值?

在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。

typedef int bool;  
#define false 0  
#define true  1  
typedef enum { 
    false, true 
} bool;  

或者

typedef int bool;  
enum { false, true };  

C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。
_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。
C99还提供了一个头文件** ** 定义了bool代表_Bool,true代表1,false代表0。

你可能感兴趣的:(C语言的布尔值?)