gpt4 book ai didi

无法将变量分配给 C 中的外部变量

转载 作者:行者123 更新时间:2023-12-02 09:18:32 24 4
gpt4 key购买 nike

为什么这不起作用

extern int externed_variable;
int variable = externed_variable;

尽管如此

extern int externed_variable;
int *variable_ptr = &externed_variable;

我从前者得到的编译器错误是“表达式必须具有常量值”。我正在使用 MSVC。

最佳答案

"expression must have a constant value"

正如错误所示,当您初始化变量时,它应该是常量。

在这种情况下,

extern int externed_variable;
int variable = externed_variable;

您正在使用“变量”进行初始化,并且变量在运行时获取值。

但是当你这样做时:

extern int externed_variable;
int *variable_ptr = &externed_variable;

您正在分配地址,全局变量的地址是在编译时决定的,因此是常量。并且允许您初始化一个具有常量值的变量。

所以回答你,由于全局变量的地址是在编译期间分配的并且是恒定的,因此你不会得到错误!

关于无法将变量分配给 C 中的外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44658188/

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