グローバル変数の定義箇所が意味不明
Posted: 2010年7月08日(木) 01:48
はじめまして。
早速ですが、質問させてください。
とあるプログラムのソースが、グローバル変数の定義と関数の定義を
それぞれまとめて、別々のファイルで行っていたのです。
たとえば、data.cとfunc.cというファイルがあったとして、
data.cというファイルの内容は
int a;
int b;
// data.cここまで
func.cというファイルには
extern int a;
extern int b;
void f1(void) { a = 1; }
void f2(void) { b = 2; }
// func.cここまで
といった具合です。
このようにグローバル変数をまとめて定義する意味って何かあるのでしょうか?
(リンカが低機能なのか…?)
推測でよいので何かしらご教示いただけたらありがたいです。
早速ですが、質問させてください。
とあるプログラムのソースが、グローバル変数の定義と関数の定義を
それぞれまとめて、別々のファイルで行っていたのです。
たとえば、data.cとfunc.cというファイルがあったとして、
data.cというファイルの内容は
int a;
int b;
// data.cここまで
func.cというファイルには
extern int a;
extern int b;
void f1(void) { a = 1; }
void f2(void) { b = 2; }
// func.cここまで
といった具合です。
このようにグローバル変数をまとめて定義する意味って何かあるのでしょうか?
(リンカが低機能なのか…?)
推測でよいので何かしらご教示いただけたらありがたいです。