gpt4 book ai didi

c - 在 C 中使用变量初始化全局变量

转载 作者:行者123 更新时间:2023-11-30 16:50:11 25 4
gpt4 key购买 nike

我在文件顶部紧随我的 #include 指令之后定义了以下变量;

int a = 5;
int b = a;

但是我收到编译时错误。我知道全局变量隐式具有静态存储持续时间,但我不确定这如何或是否与此错误的原因相关。

最佳答案

正如您所说,全局变量隐式具有静态存储持续时间。这是因为全局变量是在编译时初始化的。所以这正是您收到错误的原因。

来自C99标准6.7.8:

All the expressions in an initializer for an object that has static storage duration shall be constant expressions or string literals.

要绕过此规则,您可以使用以下“技巧”。

int a = 5;
int b;

int main()
{
b = a;
//rest of code goes here.
}

关于c - 在 C 中使用变量初始化全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287786/

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