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;
}
相关推荐
Zevalin爱灰灰7 分钟前
MATLAB GUI界面设计 第六章——常用库中的其它组件
开发语言·ui·matlab
冰糖猕猴桃14 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
wt_cs42 分钟前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
_WndProc1 小时前
【Python】Flask网页
开发语言·python·flask
liujing102329291 小时前
Day04_刷题niuke20250703
java·开发语言·算法
能工智人小辰2 小时前
二刷 苍穹外卖day10(含bug修改)
java·开发语言
DKPT2 小时前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
LL.。2 小时前
同步回调和异步回调
开发语言·前端·javascript
0wioiw02 小时前
Python基础(吃洋葱小游戏)
开发语言·python·pygame
栗子~~2 小时前
Python实战- Milvus 向量库 使用相关方法demo
开发语言·python·milvus