0
我正在使用gcc編譯一些.c文件。比方說,下面的話:鏈接錯誤:全局變量的多重定義
C文件是:
main.c
tree.c
頭文件是:
tree.h
我已經宣佈了一些變量,如果看不到在tree.h
。比方說,以下是值的全局varible分配:
int fanout = 5;
早些時候,我一直保持main()
功能tree.c
文件。鏈接沒有問題。但是現在我想把主要功能分開。我剛剛在新創建的.c
文件中移動了主要功能。現在的問題是,它 顯示鏈接錯誤:
main.o error: fanout declared first time
tree.o error: multiple declaration of fanout.
請讓我知道我可以擺脫這個問題的。
在此先感謝。
順便說一句,我得到以下警告:**警告:「扇出」初始化並宣佈「的extern」 **你有任何想法,爲什麼會這樣? – thetna
@thetna:你可能想檢查[this](http://stackoverflow.com/questions/8054847/declaration-versus-definition-in-c/8054893#8054893)我的答案。你可能也只是'int fanout = 5'在樹中。不包括前面的'extern',雖然這個警告只是地道警告,但是你可以擺脫這個警告。上面的答案中的用法是安全的,符合標準,鏈接的答案詳細解釋了這一點。 –