我對使用extern關鍵字和C語言中的變量有一些疑問。我確實經歷了與這個問題相關的鏈接。不過,也有我沒有收集很好
extern變量是如何定義的?
#include<stdio.h>
main()
{
extern int i;
printf ("\n%d ",i)) ;
}
int i = 31 ;
在上面的代碼還是有幾件事情,如何我得到它的定義語句之前打印?
現在在下面的代碼:
#include<stdio.h>
int x = 21 ;
main()
{extern int i;
i=20;
printf ("\n%d ", i) ;
}
是不是語句 「我= 20;」一個定義聲明?我得到這個錯誤。是因爲我試圖改變在其他源文件中定義的變量嗎?如果是這種情況,那麼「int i = 31;」的說法如何?在最上面的代碼片段正確使用?
另外,我讀了「int i;」是一個定義。我沒有真正遵循如何。
我認爲兩者都應該編譯,但第二個將無法鏈接(*啓動鐺測試它*) – Christoph
好吧,第一個例子未能編譯,但不是因爲變量聲明 - 有一個多餘的右括號... – Christoph
@Christoph第二個失敗是因爲說'我'是'extern',但實際上並沒有提供它在同一時間使用它。將所有使用'i'的線條註釋掉'extern'一個,它會很好地編譯。 – Nobilis