首页 > 解决方案 > 关于 C 中外部值的说明

问题描述

在 C 中,外部变量的初始值是“零”。但是在阅读了这个特定的类类别之后。它说将变量清除为外部,意味着该值仅通过了“解密阶段”。变量如何在不进入初始化阶段并为特定变量?请考虑以下代码:

extern int var; 
int main(void) 
{ 
var = 10; 
return 0; 
}

我理解为什么会出现有问题的情况:我们试图将一个值初始化为一个未在内存中分配的变量(该变量实际上并不存在)。我的观点是:为什么它的内存不存在,并且遵循“外部”术语,变量的初始值为“零”。在我看来,这意味着如果内存具有初始值,它确实存在。...

标签: cextern

解决方案


要使此代码有效,程序的另一部分必须包含 的定义var,例如:

int var = 0;

这是初始值的来源。如果您不提供初始化程序,那么它的行为就像您使用初始化一样= {0} (这是静态存储持续时间变量的规则)。


推荐阅读