在哪里放置 __attribute__ ((aligned)) 和 typedef:ed 结构?
我在 Google 上搜索了有关 gcc 的 __attribute__ ((aligned))
的信息,以了解有关如何使用该属性的更多信息。
根据 GNU 的说法,“您可以在 typedef 声明中或仅在完整枚举、结构或联合类型定义的右大括号之后指定对齐和透明_union 属性,并且仅在定义的右大括号之后指定打包属性。”此外,该文档还显示了以下示例:
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)) 的任何其他详细信息。
I have Googled information on gcc's __attribute__ ((aligned))
to learn more about how to use the attribute.
According to GNU "You may specify aligned and transparent_union attributes either in a typedef declaration or just past the closing curly brace of a complete enum, struct or union type definition and the packed attribute only past the closing brace of a definition." In addition the document shows the following example:
struct S { short f[3]; } __attribute__ ((aligned (8)));
But I have found few examples with "typedef struct". I found the following two:
typedef struct __attribute__ ((aligned)) { char a; int x; } foo;
typedef struct { char a; int x; } __attribute__ ((aligned)) foo;
Which is the preferred method: attribute after struct and before {
, or attribute after }
and before foo?
Do they both deliver the same result?
I would greatly appreciate any additional detail about the correct usage of __attribute__ ((aligned))
with a typedef:ed struct.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 GCC 文档:
From the GCC doc: