属性对齐跨平台

时间:2017-02-14 12:52:36

标签: c++ c++11

是海湾合作委员会的

union uint128_t {
    uint64_t q[2];
    uint64_t w[8];
    char b[16];
} __attribute__((aligned (16)));

与(crossplatform)相同:

union alignas(16) uint128_t {
    uint64_t q[2];
    uint64_t w[8];
    char b[16];
};

1 个答案:

答案 0 :(得分:2)

是。请参阅__attribute__((aligned))alignas

如果你问"为什么<某些图书馆>使用__attribute__而不是alignas?"我怀疑答案是"因为alignas相对较新,但__attribute__已得到更长时间的支持。"