是GCC的

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


与(跨平台)相同:

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


最佳答案

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

如果您问“为什么为什么使用__attribute__而不是alignas?”我怀疑答案是“因为alignas相对较新,但是__attribute__支持的时间更长了”。

关于c++ - 属性对齐的跨平台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42226704/

10-11 21:45