【发布时间】:2021-12-29 08:13:21
【问题描述】:
我不知道 ALIGMENT_ATTRIBUTE(B) 在 typedef 中应该做什么,因为它是一个空定义。是否形成函数?
#define ALIGNMENT_ATTRIBUTE(B)
typedef ALIGNMENT_ATTRIBUTE(8) UInt64 T_AUInt64;
【问题讨论】:
-
除非询问两种语言之间的差异或交互,否则不要同时标记 C 和 C++。
-
宏是一些多目标或多对象构建方案的一部分。当为构建选择其他目标或选项时,将使用提供对齐属性的替换文本定义宏。发布此问题时,您应该显示更多上下文。
-
@EricPostpischil:因为它是一个预处理器宏,它可以用于两种语言。由于没有人寻找预处理器标记,因此使用 C 和 C++ 标记非常好!
-
@Klaus:C 立场的指导是“在没有合理理由的情况下,它不应与 C++ 标签结合”,并且您希望得到选择关注 C 标签的人的注意但不是 C++ 标签(反之亦然)是不尊重标签垃圾邮件,不是合理的原因。
-
我同意@Klaus。这种关闭问题的方法只是因为它被标记在两种语言下,并且尽管问题的实际内容是不可知的(不特定于这些语言中的一种),但通常是有害的。在这种特定情况下,一个非常好的(并且完全“合法”)的问题无缘无故地被关闭了。恕我直言。