【问题标题】:What is correct coding practice while using attributes in C? [closed]在 C 中使用属性时正确的编码实践是什么? [关闭]
【发布时间】:2017-05-15 11:44:35
【问题描述】:

如果我们正在为某些变量或函数编写属性,那么正确的做法是什么?我将借助以下样式详细说明我的问题。

int a __attribute__((aligned(32)));

__attribute__((aligned(32))) int a;

__attribute__((aligned(32)))
int a;

int __attribute__((aligned(32))) a;

你认为写属性更好或更正确的方法是什么?

【问题讨论】:

  • 我们应该根据哪些标准来决定哪个是最好的?这是一个非常主观的问题。无论如何,如果效率相同,我会在每种情况下选择int a;。如果有任何细节要添加到此声明中,请发表评论。
  • 无论你决定如何,每次都以同样的方式去做。

标签: c syntax attributes


【解决方案1】:

最好的方法是遵循标准 C。你所有的例子都是非标准的。

从 C11 开始,您可以在标准 C 中使用 _Alignas 关键字:

_Alignas(32) int x;

这是“最佳”方式,因为它是标准且可移植的。

【讨论】:

  • 您可以包含 <stdalign.h> 以获得更漂亮的语法:alignas 而不是 _Alignas
  • 是的,这使得代码与 C++ alignasalignof 兼容。这可能是一件好事,也可能不是一件好事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多