C语言中的位域、枚举常量及相关特性
1. 位域(Bit Fields)
1.1 位域简介
在C语言中,位域允许我们指定一个结构体或联合中无符号或有符号整数成员所占用的位数,这有助于更高效地利用内存,因为它能将数据存储在所需的最少位数中。位域成员必须声明为 int 或 unsigned int 类型。
1.2 定义位域
以下是一个使用位域来表示扑克牌的示例:
struct bitCard {
unsigned int face : 4;
unsigned int suit : 2;
unsigned int color : 1;
};
在这个结构体中, face 成员占用4位,可以存储0 - 15的值,用于表示扑克牌的牌面(0表示Ace,12表示King); suit 成员占用2位,可以存储0 - 3的值,分别表示红桃、方块、梅花和黑桃; color 成员占用1位,用于表示牌的颜色(0表示红色,1表示黑色)。
1.3 使用位域表示扑克牌
下面的代码展示了如何使用位域来表示一副扑克牌,并打印出所有的牌:
// Fig. 10.16: fig10_16.c
// Representing cards with bit fields in a struct
#incl
超级会员免费看
订阅专栏 解锁全文
1004

被折叠的 条评论
为什么被折叠?



