In this answer使用的OP:
static int const var = 5;
在条件编译控制的上下文中。
使用之间有区别吗static const int
and static int const
?
例如:
static const int var;
vs.
static int const var;
我不知道暗示中间类型的技术static
and const
。有区别吗?
声明说明符的语法在 C 2018 6.7 1 中给出,它表明存储类的说明符(例如static
)、类型(例如short
or double
)、限定符(例如const
), 功能 (inline
and _Noreturn
),并且对齐可以以任何顺序出现。第 6.7 条中没有任何内容对说明符出现的顺序给出任何含义,因此我们可以假设说明符的任何组合都具有相同的含义,无论顺序如何。
在这方面唯一提到的“顺序”出现在 6.7.2 2 中,它说“……类型说明符可以以任何顺序出现,可能与其他声明说明符混合在一起。”所以你可以写long static int const long
for static const long long int
,就像你可以说“方形红色大房子”而不是“大方形红色房子”一样——没有规则反对它,但它会看起来很有趣对人们来说并可能会抛弃他们。
请注意,*
表示一个指针,以及(
and )
对于分组或参数列表以及[
and ]
for 下标不是声明说明符,并且不能使用声明说明符自由地重新排序。 (它们实际上是声明者,它是声明的独立部分声明说明符.)
然而,该标准在 6.11.5 中将在其他说明符或限定符之后使用存储类说明符描述为已过时:
将存储类说明符放置在声明中声明说明符开头以外的位置是一项过时的功能。
“过时”意味着该功能可能会在标准的未来修订版中考虑撤销(根据介绍第 2 段)。因此,编译器会发出警告以使用const static
建议进行一项更改,以帮助为 C 的未来版本准备源代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)