C言語のファイルを分割するときにグローバル変数に「extern」を使って、多重定義を防ぐというものを聞いたのですが、いまいちよくわかりません。 C言語のファイルを分割するときにグローバル変数に「extern」を使って、多重定義を防ぐというものを聞いたのですが、いまいちよくわかりません。 まず一つ目は、ヘッダーファイル内で宣言されたグローバル変数がどのような扱いをされるのかということです。 私が考えた事は、 まず、グローバル変数をヘッダーファイルの中で定義して、それをソースファイルにインクルードしますよね。 つまり、そのソース内でそのグローバル変数が定義されていることになり、 そのソースの中で再びその変数を定義する必要はなく、そのまま使える、と思っていたのですが・・ エラーが出てしまいました>< その時のソースコードが以下の通りです。 // func.h #include <stdio.h>