C 语言自定义类型:结构体、位段、联合体、枚举
struct成员并排空间叠加位段struct 里按 bit 分配极致省空间union成员重叠空间共享enum有限常量替代宏更安全一、结构体 struct成员并排空间叠加1. 基本声明2. 内存对齐对齐规则1.首成员偏移为 02.后续成员对齐到min(默认对齐数, 自身大小)的整数倍3.总大小是最大对齐数的整数倍4.嵌套结构体内部对齐到自身最大对齐数3. 结构体传参优先传地址传整个结构体拷贝开销大传指针直接访问高效技巧省空间技巧小成员放一起void print(struct S* ps) { ps-i; }二、位段结构体里抠 bit极致省空间1. 什么是位段在 struct 中用:n指定占用多少 bit。2. 内存分配按int(4字节)或char(1字节)为单位开辟跨平台大小端、分配方向不确定3. 注意不能取地址s.abit 无地址适合网络协议、寄存器、标志位三、联合体 union成员重叠空间共享1. 声明与特点union Un { char c; int i; };所有成员共用同一块内存大小 最大成员大小并对齐赋值演示3. struct vs union 对比struct叠加→sizeof8union重叠→sizeof4四、枚举 enum有限常量替代宏1. 声明enum Color { RED, // 0 GREEN, // 1 BLUE // 2 };可手动赋值2. 优点对比 #define✅ 可读性高✅ 有类型检查更安全✅ 调试可见宏会被删除✅ 作用域可控3. 使用五、总结