结构体对齐预处理指令
来源:互联网 发布:深圳创意软件 编辑:程序博客网 时间:2024/06/06 20:35
使用方法:
方式一:
/*n可以取以下5个数中的任意一个:1,2,4,8,16来自定义结构体成员的对齐方式*/#pragma pack(n)//这里放置结构体#pragma pack ()//取消自定义字节对齐方式
方式二:
/*n可以取以下5个数中的任意一个:1,2,4,8,16来自定义结构体成员的对齐方式*/#pragma pack(push,n)//这里放置结构体#pragma pack(pop) //编译器到编译到此处时将恢复原来的对齐状态------------注意--------------#pragma pack(push) //保存对齐状态#pragma pack(4)//设定为4字节对齐相当于 #pragma pack(push,4)
默认状态下,系统会自动对结构体进行对齐
typedef struct userInfo{ char a; //4字节 int b; //4字节 short c;//2字节 char d; //1字节 char e; //1字节} YF_userInfo;
以上结构体的总大小是12字节,其中第一个char型本应该是1个字节的,但是系统为了提高性能,对结构体进行了对齐,使其拥有4个字节的空间大小。
添加字节对齐
#pragma pack(push,1)typedef struct userInfo{ char a; //1字节 int b; //4字节 short c;//2字节 char d; //1字节 char e; //1字节} YF_userInfo;#pragma pack(pop)
设置结构体按一个字节对齐,此时系统不再对结构体进行自动对齐,结构体中的成员占空间大小由自身的类型来决定,系统不再干预。
0 0
- 结构体对齐预处理指令
- 09-结构体指针和预处理指令
- 【C语言学习笔记】结构体、枚举、预处理指令
- C语言第十章:结构体、枚举、预处理指令
- 结构体对齐(内存对齐)
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 内存对齐 结构体对齐
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 内存对齐.结构体对齐
- 预处理,结构体
- 预处理与结构体
- 预处理、结构体预习
- 预处理、结构体
- mob.com SMSSDK使用 免费短信验证
- eclipse中的快捷键
- Swift初学入门之控制台输入函数
- 将eclipse项目导入到android studio心得体会
- linux grep
- 结构体对齐预处理指令
- hdu 3979 Monster
- 关于execv函数
- 并查集三
- iOS开发——创建依赖工程Framework
- C++中成员变量的初始化总结
- [poj 3080]Blue Jeans [kmp]
- Android轮播图实现
- Spark 2.0介绍:Spark SQL中的Time Window使用