35、C语言中的位域、枚举常量及相关特性

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值