gpt4 book ai didi

c++ - 全局常量定义的顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:43 25 4
gpt4 key购买 nike

我想这个问题已经有人问过了,但我找不到。如果我使用宏而不是像这样的常量:

 #define A 0
#define B (A+1)
#define C (B+A)

然后它保证以严格的顺序定义(A 然后 B 然后 C)。但是如果我改用 consts 会发生什么?

 const int A = 0;
const int B = A + 1;
const int C = A + B;

如果它在函数范围内 - 没问题。但是全局范围呢?据我所知,不能保证全局变量的定义顺序。那么常量呢?

我认为这是阻止我使用常量而不是宏的最后一件事。

(我也很好奇 C 和 C++ 在这个特定问题上是否存在任何差异)。

UPD:问题应该是这样的:C 和 C++ 在这件事上有什么区别(如果有的话)?

最佳答案

根据标准中的 §3.6.2/2:

Variables with ordered initialization defined within a single translation unit shall be initialized in the order of their definitions in the translation unit.

因此您的代码格式正确,并且在任何标准 C++ 编译器中都有一个结果。

关于c++ - 全局常量定义的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19904461/

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