C++ GCC/Clang中内存对齐的通用属性
C++11是否有通用属性来指示变量在GCC/Clang中与内存对齐C++ GCC/Clang中内存对齐的通用属性,c++,c++11,memory-alignment,C++,C++11,Memory Alignment,C++11是否有通用属性来指示变量在GCC/Clang中与内存对齐 (请注意,我熟悉“内置”与“假定”对齐。我想知道是否有办法使用C++11通用属性功能实现这一点)C++11引入了两个单独的更改: 使用alignas和alignof的对齐支持 属性,例如[[noreturn]]和[[carriers\u dependency]]] 这两种属性都被标准概括为“属性”,参见第7.6节。谢谢。谷歌搜索表明alignas与_;属性_;相同,但它们与_;内置_;有什么区别_aligned@Sid:\u
(请注意,我熟悉“内置”与“假定”对齐。我想知道是否有办法使用C++11通用属性功能实现这一点)C++11引入了两个单独的更改:
- 使用
和alignas
的对齐支持alignof
- 属性,例如
和[[noreturn]]
[[carriers\u dependency]]]
这两种属性都被标准概括为“属性”,参见第7.6节。谢谢。谷歌搜索表明alignas与_;属性_;相同,但它们与_;内置_;有什么区别_aligned@Sid:
\uuuuuuuu属性
和\uuuuuuu内置
是非标准扩展。答案将是特定于编译器的。新的标准方法是Kerreks答案中描述的,但不幸的是,目前还没有实现(或者只是最近才实现)。如果您查阅编译器手册,您会发现其非标准扩展的文档。@user1131467:我认为GCC 4.8和最近的Clang都完全支持这一点。@user1131467:我查看了GCC手册,但它没有真正弄清楚“属性”和“内置”之间的区别。你能给我一个指向我在哪里可以找到这些信息的指针吗?@Sid:GCC的\uuu属性\uuu
是一个完全通用的机制。对齐只是其众多目的之一。是的。