C语言struct,union内存对齐

测试环境:

c 复制代码
#include<stdio.h>
int main(){
 //1字节对齐
 struct XXX{
  unsigned char ch;
  unsigned int in;
  unsigned short si;
 }__attribute__((packed));
 struct XXX xxx;
 printf("%zd\n",sizeof(xxx));//7

 #pragma pack(1)
 struct YYY{
   unsigned char ch;
   unsigned int in;
   unsigned short si;
 };
 struct YYY yyy;
 printf("%zd\n",sizeof(yyy));
 #pragma pack()

 //不进行对齐限制,编译器决定
 //默认对齐方式是采用当前最长的变量的长度作为对齐方式
 struct ZZZ{
   unsigned char ch;
   unsigned int in;
   unsigned short si;
 };
 struct ZZZ zzz;
 printf("%zd\n",sizeof(zzz));//12


 return 0;
}
相关推荐
故事和你914 分钟前
sdut-python-实验四-python序列结构(21-27)
大数据·开发语言·数据结构·python·算法
SuperEugene9 分钟前
TypeScript+Vue 实战:告别 any 滥用,统一接口 / Props / 表单类型,实现类型安全|编码语法规范篇
开发语言·前端·javascript·vue.js·安全·typescript
liuyao_xianhui13 分钟前
优选算法_模拟_提莫攻击_C++
开发语言·c++·算法·动态规划·哈希算法·散列表
.select.32 分钟前
c++ 移动赋值/移动构造函数
开发语言·c++
我是鶸42 分钟前
secml-malware python library 源码分析及实践
开发语言·python
setmoon2141 小时前
C++代码规范化工具
开发语言·c++·算法
不想看见4041 小时前
C++/Qt 代码规范指南
开发语言·qt
li星野1 小时前
QT模拟题:QT项目实践与架构设计(120分钟)
开发语言·qt
大鹏说大话1 小时前
Java 锁膨胀机制深度解析:从偏向锁到重量级锁的进化之路
开发语言·c#
IT猿手1 小时前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw