给定一个结构定义,例如
struct foo {
int a, b, c;
};
指定它应始终与 64 位地址对齐的最佳(最简单、最可靠和可移植)方法是什么,即使在 32 位版本上也是如此?我正在使用 C++11 和 GCC 4.5.2,并希望也支持 Clang。
既然你说你正在使用 GCC 并希望支持 Clang,那么 GCC 的aligned
属性 http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Type-Attributes.html应该做的伎俩:
struct foo {
int a, b, c;
} __attribute__((__aligned__(8))); // aligned to 8-byte (64-bit) boundary
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)