簡體   English   中英

澄清C中的外部值

[英]Clarification about extern value in C

在C中,外部變量的初始值為“零”。 但是,在閱讀了有關該特定類的類別之后。它說,將變量清除為外部變量,意味着該值僅通過了“ decleration stage”。為什么變量可以在不進行初始化階段的情況下獲得初始值,也不為該變量分配內存。特定變量? 請考慮以下代碼:

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

我知道為什么會出現問題:我們嘗試將值初始化為未在內存中分配的變量(該變量實際上不存在)。 我的觀點是:為什么它的內存不存在,並且遵循“外部”的術語,變量的初始值為“零”。 在我看來,這意味着如果內存具有itial值,則它確實存在。

為了使此代碼有效,程序的另一部分必須包含var的定義,例如:

int var = 0;

初始值來自哪里。 如果不提供初始化程序,則它的行為就像使用= {0}初始化(這是靜態存儲持續時間變量的規則)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM