c - 关于 C 中外部值的说明
问题描述
在 C 中,外部变量的初始值是“零”。但是在阅读了这个特定的类类别之后。它说将变量清除为外部,意味着该值仅通过了“解密阶段”。变量如何在不进入初始化阶段并为特定变量?请考虑以下代码:
extern int var;
int main(void)
{
var = 10;
return 0;
}
我理解为什么会出现有问题的情况:我们试图将一个值初始化为一个未在内存中分配的变量(该变量实际上并不存在)。我的观点是:为什么它的内存不存在,并且遵循“外部”术语,变量的初始值为“零”。在我看来,这意味着如果内存具有初始值,它确实存在。...
解决方案
要使此代码有效,程序的另一部分必须包含 的定义var
,例如:
int var = 0;
这是初始值的来源。如果您不提供初始化程序,那么它的行为就像您使用初始化一样= {0}
(这是静态存储持续时间变量的规则)。