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;
}
相关推荐
小马学嵌入式~13 分钟前
堆排序原理与实现详解
开发语言·数据结构·学习·算法
SundayBear31 分钟前
Qt 开发修炼指南:从入门到通透的实战心法
开发语言·qt·嵌入式
egoist20231 小时前
[linux仓库]信号快速认识[进程信号·壹]
linux·c语言·信号处理·信号·前后台进程
_w_z_j_2 小时前
C++----bitmap位图的使用
开发语言·c++
BingeBlog2 小时前
[01] Qt的UI框架选择和对比
开发语言·c++·笔记·qt·ui·开源软件
小许学java2 小时前
Spring AI快速入门以及项目的创建
java·开发语言·人工智能·后端·spring·ai编程·spring ai
AGG_Chan2 小时前
flutter专栏--深入了解widget原理
开发语言·javascript·flutter
Darenm1113 小时前
JavaScript事件流:冒泡与捕获的深度解析
开发语言·前端·javascript
whltaoin3 小时前
Java 后端与 AI 融合:技术路径、实战案例与未来趋势
java·开发语言·人工智能·编程思想·ai生态
wjs20243 小时前
jEasyUI 自定义窗口工具栏
开发语言