c语言定义两个结构变量,C语言的结构体位定义问题

本文介绍了C语言中位域的概念,通过示例展示了如何使用位域定义结构体,探讨了位域节省存储空间的特点,并通过代码示例解释了不同数据类型对位域结构体大小的影响。
摘要由CSDN通过智能技术生成

按照名字定义,u无符号 int 整形,数字 8 16,表示多少位的整形,

1字节     uint8_t

2字节     uint16_t

4字节     uint32_t

8字节     uint64_t

详情参考:http://www。

cnblogs。com/baochun968/archive/2011/10/19/2218008。html

bit0:1这句话定义了一个位域,bit0是该位域的域名,而且bit0只占用一个位。

位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。

为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来表示。

参考:http://zhidao。baidu。com/question/391684179。html

所以上面的结构体,一个元素属性占一位,前面的是2字节,后面也是两个字节。本质上没有区分吧

常规下可以这样测试上面的代码

#include

typedef unsigned short uint16_t ;

typedef unsigned char uint8_t ;

typedef struct

{

uint16_t bit0:1;

uint16_t bit1:1;

uint16_t bit2:1;

uint16_t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值