[英]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.