C语言中,本身没有bool(布尔型变量)。但是我们可以用其他方式来模拟。
一、如果简单的使用char、int、long变量来表示0/1,则太浪费空间了。
二、这里介绍一种巧妙的方式实现bool,高空间利用率。
#define true1#define false0//--------------------------------------------联合体(共用体) 定义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_0FLAG0.bit_type.b0 #define flag_1FLAG0.bit_type.b1#define flag_2FLAG0.bit_type.b2#define flag_3FLAG0.bit_type.b3#define flag_4FLAG0.bit_type.b4#define flag_5FLAG0.bit_type.b5#define flag_6FLAG0.bit_type.b6#define flag_7FLAG0.bit_type.b7
这里使用union(联合体)来实现高空间利用率