让编译器不对Struct变量插入对齐字节
来源:互联网 发布:淘宝删除子账号后 编辑:程序博客网 时间:2024/06/07 21:30
“众所周知”,编译器为了提高访问效率,为对struct类型插入一些字节以达到对齐目的。(ps:在嵌入式面试中也常考察struct变量占用的空间大小,其实就是对齐的问题)
但有些场合,比如芯片提供的存储空间很紧张,不希望编译器进行这种“对齐”优化,可以通过使用“__attribute__((packed))”关键字来,来告诉编译器不要插入对齐字节。
__attribute__((packed))是GNU标准定义的,一般编译器都支持。
//一个简单的例子,
typedef struct myStrcuc{
char v1;
int v2;
char v3;
int v4;
}__attribute__((packed)) myStruc_s;
使用了__attribute__((packed))后,myStruc_s变量妥妥的只占10个字节(32位机上)。
- 让编译器不对Struct变量插入对齐字节
- 如何让struct不字节对齐
- 详解struct、class中成员变量的字节对齐
- struct 字节对齐详解
- struct 字节对齐详解
- struct 字节对齐详解
- struct字节对齐问题
- 字节对齐struct
- struct与字节对齐
- struct 字节对齐详解
- Struct字节对齐分析
- struct 字节对齐详解
- struct 字节对齐详解
- struct字节对齐问题
- struct字节对齐
- struct 字节对齐详解
- struct 字节对齐详解
- struct 字节对齐详解
- udp
- MySQL数据库备份命令
- MON51通信协议和实现分析
- 机房收费系统之报表总结2
- Enum一点使用总结
- 让编译器不对Struct变量插入对齐字节
- Wireshark基本介绍和学习TCP三次握手
- ASP中如何实现先横向再纵向的排列
- 【android开发】10款实用的Android UI工具,非常有用!
- VtigerCRM5.4.0数据导出导入csv乱码修复
- python error: IndentationError: unindent does not match any outer indentation level
- 监听总结之3.监听命令:lsnrctl工具的三个命令start、stop和status都是分步执行的
- 对文件进行快速简单加密(防小白)
- android APK加密、签名