2015-10-08 25 views
2

我指的是Gottfried編寫的「C語言編程的理論和問題」一書(Schaum的Outline系列)第8章(第二版)中第224頁第8.5節的內容。根據該書, 「爲了訪問另一個文件中的外部變量,必須首先在該文件中聲明該變量。此聲明可能出現在文件中的任何位置,但通常情況下,它將被放置在文件的開頭「文件中任何位置的變量聲明

我覺得即使萬一它是一個全局變量,也不可能在文件中的任何位置保存變量的聲明。它應該放在變量的使用之前。如果我將聲明放置在最後,我嘗試並收到錯誤消息。如果作者在這裏的意圖是別的,我不是應該起訴嗎?對此有何評論?附上的是教科書中的部分圖像。 enter image description here

+2

這不是關於全局變量,而是關於'extern'。這會改變什麼嗎? – usr2564301

回答

2

這意味着變量可以出現在文件範圍,但也可以在塊範圍。

void foo(void) 
{ 
    extern int x; 
    x = 42; 
} 

作者並不是說變量可以在使用後聲明。

1

我相信作者的意思是你可以在任何地方聲明一個變量,只要它在使用之前,它可以在文件中的任何地方,而不僅僅是在它的開始。