この(リンク)の質問で私の問題を説明するために、リンカーがどのように機能するか、およびこのプロセスに関連するすべてについて読んでいます(短いですが、参照については申し訳ありませんが、関連性があります)。
質問: ヘッダーに(externを使用して)変数宣言があり、この変数を複数のソースファイル(#各コースのヘッダーファイルを含む)で使用したい場合は、これの定義を提供する必要がありますどこかで変数。問題は、たとえば一部のソースファイルのmain関数で定義を指定した場合でも、他のファイルはこの定義を「認識」しないことです(これによりリンクエラーが発生します)。このextern変数をグローバルスコープの1つで定義すると、正常に機能し、誰もがそれを見ることができます。
なんで?他のファイルはどのようにして別のファイルのグローバルスコープにアクセスできますか?そして、グローバルスコープ変数は危険ではありませんか?変数定義を他のどのスコープに配置すると、このようなリンクエラーを解決できますか?誰かがヘッダーでそのような外部変数宣言をどのような目的で使用しますか?
編集:正確な例の状況は、私が最初に投稿したリンクにあります