我在gcc的__attribute__ ((aligned))
上搜索了有关如何使用该属性的详细信息。
根据GNU“您可以在typedef声明中指定aligned和transparent_union属性,或者只是通过完整枚举,结构或联合类型定义的结束大括号,并且仅在定义的右大括号之后指定packed属性。”此外,该文档还显示了以下示例:
struct S { short f[3]; } __attribute__ ((aligned (8)));
但我发现“typedef struct”的例子很少。我找到了以下两个:
typedef struct __attribute__ ((aligned)) { char a; int x; } foo;
typedef struct { char a; int x; } __attribute__ ((aligned)) foo;
哪个是首选方法:struct之后和{
之前的属性,或}
之后和foo之前的属性?
他们都提供相同的结果吗?
我非常感谢有关使用typedef:ed结构正确使用__attribute__ ((aligned))
的任何其他详细信息。
答案 0 :(得分:9)
来自GCC doc:
对于枚举,结构或联合类型,您 可以指定之间的属性 枚举,结构或联合标签和 类型的名称,或只是过去的 关闭定义的大括号。 以前的语法是首选。