配列のincludeについて

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

配列のincludeについて

#1

投稿記事 by とっしー » 13年前

初めまして。
初歩的なことですが質問させていただきます。

あるゲームプログラムでmainループのあるcppファイル、
主人公の動きを処理するcppファイル、
敵の動きを処理するcppファイル・・・などがあります。

それらすべてのcppファイルである配列 a[n][m] を参照にしたいのですが、
ヘッダーファイルにこの配列を定義してそれぞれのcppファイルでincludeすると
「配列 a[n][m] は何回も定義されています」
的なエラーが出てしまい実行することができません。

この場合どのようにすればいいのでしょうか?
お手数お掛けしますがご回答よろしくお願いしますm(__)m

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 配列のincludeについて

#2

投稿記事 by beatle » 13年前

基本的なやり方は、ヘッダーファイルに「配列aはどこかで定義されていますよ」というお知らせを書き、どれか一つのcppファイルに配列aの実際の定義を書きます。

何らかの変数が「どこかで定義されている」というのを表すには「extern」というキーワードを使って、ヘッダファイルに以下のように書きます。

コード:

extern T hoge;
今回の場合は配列aをextern宣言したいのですから

コード:

extern T a[n][m];
と書いておきましょう。Tには要素の型を、n, mには要素数をそれぞれ書き込んでください。

そして、どれか1つのcppファイルに定義を書きます。

コード:

T a[n][m];

とっしー

Re: 配列のincludeについて

#3

投稿記事 by とっしー » 13年前

beatleさん

ありがとうございました!解決しました!
また機会がありましたらよろしくお願いしますm(__)m

とっしー

Re: 配列のincludeについて

#4

投稿記事 by とっしー » 13年前

失礼しました、解決を付け忘れていました

閉鎖

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