Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GCC/Clang中内存对齐的通用属性_C++_C++11_Memory Alignment - Fatal编程技术网

C++ 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是否有通用属性来指示变量在GCC/Clang中与内存对齐


(请注意,我熟悉“内置”与“假定”对齐。我想知道是否有办法使用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
是一个完全通用的机制。对齐只是其众多目的之一。是的。