C言語のファイルを分割するときにグローバル変数に「extern」を使って、多重定義を防ぐというものを聞いたのですが、いまいちよくわかりません。 C言語のファイルを分割するときにグローバル変数に「extern」を使って、多重定義を防ぐというものを聞いたのですが、いまいちよくわかりません。 まず一つ目は、ヘッダーファイル内で宣言されたグローバル変数がどのような扱いをされるのかということです。 私が考えた事は、 まず、グローバル変数をヘッダーファイルの中で定義して、それをソースファイルにインクルードしますよね。 つまり、そのソース内でそのグローバル変数が定義されていることになり、 そのソースの中で再びその変数を定義する必要はなく、そのまま使える、と思っていたのですが・・ エラーが出てしまいました>< その時のソースコードが以下の通りです。 // func.h #include <stdio.h>
![C言語のファイルを分割するときにグローバル変数に「extern」を使って、多重定義を防ぐというものを聞いたのですが、いまいちよくわかりませ... - Yahoo!知恵袋](https://cdn-ak-scissors.b.st-hatena.com/image/square/1d07bee2b75b182ba712690f3a3464c29972e28b/height=288;version=1;width=512/https%3A%2F%2Fs.yimg.jp%2Fimages%2Fks%2Fclap%2Fimage%2Fogp%2Fogp.png)