memory - __attribute__((packed,aligned(n))) 和 __attribute__((aligned(n))) 有什么区别?

标签 memory gcc memory-alignment

属性((packed,aligned(n))) 和 属性((对齐(n))) ?

最佳答案

aligned属性指定变量/字段必须具有的最小对齐方式。 packed属性要求变量/字段应具有尽可能最小的对齐方式。所以只需使用 __attribute__((aligned(n))将最小对齐设置为 n ,但不保证它不会更大。但使用__attribute__((packed,aligned(n)))将对齐方式精确设置为 n .

关于memory - __attribute__((packed,aligned(n))) 和 __attribute__((aligned(n))) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831505/

相关文章:

c# - 使用任何 CPU 集编译 C# 应用程序可以处理大 (>2GB) 地址

ios - NSMutableArray replaceObjectAtIndex :withObject Loop Leakage

C:处理共享对象中的 undefined symbol

c++ - 内存分配崩溃

c - 如何动态居中对齐 char * 字符串中的文本以适应 C 中总共 16 个空格?

c++ - 模板类继承问题

c++ - 常量方法中的奇怪行为,可以修改变量

c - 什么时候复制填充字节 - 结构赋值,按值传递,其他?

c++ - 结构大小和内存布局取决于#pragma pack

c++ - 在 Xcode 6.3 下,NULL C++ 引用地址计算为非零