質問: externを使ってソースファイル間で変数を共有するにはどうすればよいですか? 私は、cのグローバル変数がexternキーワードを持っていることを知っています。 extern変数とは何ですか?宣言はどのようなものですか?その範囲は何ですか?これは、ソースファイル間で変数を共有することに関連していますが、それはどのように正確に機能しますか? externはどこで使いますか?
回答: c言語では、example.cというファイル内の変数にローカルスコープが与えられます。コンパイラは、その変数の定義が同じファイルexample.c内にあることを想定していますが、見つからない場合はエラーをスローします。一方、関数はデフォルトでグローバルスコープを持ちます。そのため、コンパイラに "look dude ...この関数の定義がここにあるかもしれない"と明示的に言及する必要はありません。その宣言を含んでいるファイルを含む関数のためには十分です(あなたが実際にヘッダファイルと呼ぶファイル)。たとえば、次の2つのファイルを考えてください。 example.c#include<stdio.h> extern int a; main(){ printf("the value of a is <%d>\n",a); } example1.cint a = 5; では、次のコマンドを使用して、2つのファイルをまとめてコンパイルするとします。ステップ1)cc -o ex example.c example1.cステップ2)./ ex次のような出力が得られます。aの値は<5>です。