ページ 11

グローバル変数を定義して他のファイルで参照する方法

Posted: 2011年6月11日(土) 00:16
by mun
例えば、同じ変数を次のファイルで使うとします。
A.cpp
B.cpp
C.cpp

自分は、Global.cpp Global.h をつくり、このように記述しました。
//Global.cpp
int x, y, z;
void Format(){
x = 0;
y = 5;
z = 7;
}

//Global.h
void Format();

//A.cpp B.cpp C.cppに同じ内容を追加
#include"Global.h"
Format();

こうすると、B.cpp C.cppの部分で「x, y, zは再定義された」とエラーが出ます。どのようにプログラムを改善したらこのエラーは消せますか?

Re: グローバル変数を定義して他のファイルで参照する方法

Posted: 2011年6月11日(土) 00:36
by h2so5
extern指定子を使います。
http://www.geocities.jp/ky_webid/c/032.html

具体的には、

コード:

// Global.h
extern int x, y, z;
void Format();

コード:

// Global.cpp
(不要)

コード:

// A.cpp
#include"Global.h"

int x, y, z;
void Format(){
x = 0;
y = 5;
z = 7;
}

コード:

// B.cpp
#include"Global.h"

コード:

// C.cpp
#include"Global.h"
のようになります。
この例では定義はA.cppに書きましたが、
A.cppでなくてもB.cppでもC.cppでもどこかに1つ書けばOKです。

Re: グローバル変数を定義して他のファイルで参照する方法

Posted: 2011年6月11日(土) 14:41
by mun
ありがとうございます!解決しました!

Re: グローバル変数を定義して他のファイルで参照する方法

Posted: 2011年6月11日(土) 14:42
by mun
ありがとうございます。解決しました!