C语言中,本身没有bool(布尔型变量)。但是我们可以用其他方式来模拟。
一、如果简单的使用char、int、long变量来表示0/1,则太浪费空间了。
二、这里介绍一种巧妙的方式实现bool,高空间利用率。
#define true 1
#define false 0
//--------------------------------------------联合体(共用体) 定义
typedef union
{
//使用位域
struct
{
unsigned b0 : 1;
unsigned b1 : 1;
unsigned b2 : 1;
unsigned b3 : 1;
unsigned b4 : 1;
unsigned b5 : 1;
unsigned b6 : 1;
unsigned b7 : 1;
}bit_type;
unsigned char byte;
}FLAG;
FLAG FLAG0; //结构变量声明
//--------------------------------------------结构类型变量位域宏定义
#define flag_0 FLAG0.bit_type.b0
#define flag_1 FLAG0.bit_type.b1
#define flag_2 FLAG0.bit_type.b2
#define flag_3 FLAG0.bit_type.b3
#define flag_4 FLAG0.bit_type.b4
#define flag_5 FLAG0.bit_type.b5
#define flag_6 FLAG0.bit_type.b6
#define flag_7 FLAG0.bit_type.b7
这里使用union(联合体)来实现高空间利用率