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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mun

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

#1

投稿記事 by mun » 14年前

例えば、同じ変数を次のファイルで使うとします。
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は再定義された」とエラーが出ます。どのようにプログラムを改善したらこのエラーは消せますか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 14年前

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です。

mun

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

#3

投稿記事 by mun » 14年前

ありがとうございます!解決しました!

mun

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

#4

投稿記事 by mun » 14年前

ありがとうございます。解決しました!

閉鎖

“C言語何でも質問掲示板” へ戻る