-2
假設有一個頭文件:a.h 和源文件:a1.c a2.c ... an.c; n> = 1,這意味着它可能只有一個源文件,或者有多個源文件。如何定義跨多個.c文件可見的全局變量
我的問題是,如何在a.h中定義一個全局變量g;這應該由a1.c ... an.c.可見
有限制:
在a1.c a2.c ... an.c; 「a.h」只能包含在第一行,這意味着在#include「a.h」行之前的源文件中不應該有代碼。g必須在a.h中定義。
可以僅由下面的方式編譯代碼:
gcc -c a1.c -o a1.o ... gcc -c an.c -o an.o gcc -o a.exe a1.o ... an.o
有,在A.H這樣限定g的答案: 的extern INT克;然而,根據c的規範J.5.11;這是未定義的行爲。
有沒有其他解決方案?
你需要學習句子的第一個如何大寫字母。 – Krypton 2014-09-02 01:44:43
您正在尋找['extern'](http://en.cppreference.com/w/cpp/language/storage_duration)關鍵字。 – 2014-09-02 01:46:31
請參閱:[**如何在C **中正確使用extern關鍵字](http://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c) – 2014-09-02 01:56:03