如果我创建一个类似于

typedef struct A
{
  int a;
  char b;
} sampleType __attribute__ ((aligned (128)));

这种类型的所有变量都将按128位边界对齐。
这种类型的全局和局部变量是否相同?
还是编译器之间的区别?
GCC/LLVM如何处理它们?

最佳答案

有一点需要澄清-只有使用sampleTypetypedef的变量才会强制执行指定的对齐方式。
使用struct A声明的变量不会。
这个语法是GCC扩展-其他编译器可能支持也可能不支持(MSVC不支持,我不知道LLVM是否支持)。

07-24 09:49
查看更多