gpt4 book ai didi

gcc - 在哪里放置 __attribute__ ((aligned)) 与 typedef :ed struct?

转载 作者:行者123 更新时间:2023-12-03 23:52:47 26 4
gpt4 key购买 nike

我在 Google 上搜索了有关 gcc 的信息 __attribute__ ((aligned))以了解有关如何使用该属性的更多信息。

根据 GNU,“您可以在 typedef 声明中指定对齐和 transparent_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;

哪个是首选方法:结构之后和之前的属性 { , 或 } 之后的属性在 foo 之前?

他们都提供相同的结果吗?

我将不胜感激有关 __attribute__ ((aligned)) 的正确用法的任何其他详细信息带有 typedef:ed 结构。

最佳答案

来自 GCC doc :

For an enum, struct or union type, you may specify attributes either between the enum, struct or union tag and the name of the type, or just past the closing curly brace of the definition. The former syntax is preferred.

关于gcc - 在哪里放置 __attribute__ ((aligned)) 与 typedef :ed struct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com