C 构造类型 数组、枚举、联合体、结构体(位段) 字节对齐 和 大小端存储

本文详细介绍了C语言中的构造类型,包括枚举、大小端存储、字节对齐、联合体以及结构体的用法。枚举允许创建命名的标签常量,而大小端存储涉及数据如何在不同CPU上存储。字节对齐确保了结构和联合的成员位于特定地址。联合体所有成员共享同一空间,并可以通过联合体判断CPU的存储方式。结构体中,成员的访问、初始化和函数指针的使用也有详尽说明。
摘要由CSDN通过智能技术生成

枚举

  • .枚举:被命名的标签常量(对事物的列出)

---类型的构造-------
enum key{
   UP,                             //成员<标签常量:默认第一个为0 后一个总是前一个的值加一>
   DOWN,
   LEFT,
   RIGHT=100,            //后面的标签常量加一
   UNKNOW,
};

enum key yy;声明枚举变量

 UP=140;                                error  成员为标签常量 不可改变

 yy=UP;                                  可以赋某个成员 也可以直接当作整变量型用
-----------------------


//匿名枚举//
enum{
   blue,
   red,
   black,
   white,
};

大小端存储

大小端    :         大于一个字节的数据由于不同CPU特性存储分为大端存储和小端存储


小端存储:         低数据位存储在低字节(地址) 高数据位存储在高字节(地址)
大端存储:         低数据位存储在高字节(地址) 高数据位存储在低字节(地址)

 

字节对齐


字节对齐:结构或联合的成员处于特定的地址


1.每个成员要在能被其空间大小整除的地址
2.整体结构大小要为最大成员空间大小的整数倍

3.如果成员空间大小大于平台对齐字节大小,则按平台对齐字节大小算
  如:某平台以4字节对齐 那么double成员只需要在被4整除的地址即可 整体空间也只需4的整数倍

设置为4字节对齐
#pragma  pack(4)


取消字节对齐:<在用网络发送结构,用结构读文件格式头,用结构作协议要取消字节对齐>
#pragma  pack(1)


恢复默认字节对齐
#pragma  pack()
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值