アプリ版:「スタンプのみでお礼する」機能のリリースについて

分割コンパイルで

ファイル1

#include <stdio.h>
#define number 10

char string[number];

int main(void){

string[0]='a';
string[1]='b';

file_to();

return 0;

}

ファイル2

#include <stdio.h>

#define number 10

extern char string[number];

void file_to(void){

/***何かの処理をする*****/

}

って感じなんですけども、配列string の中身の値をdefineによって指定しているのですが、片方のdefineの値を変更する時、もう一つのdefineも手動で変更しています。関係するファイル数が多くなってくると大変なので、どれかのdefineの値を変化させたら自動的に他のdefineの値も変更するプログラムの組み方はありませんか?

質問がわかりにくいかも知れませんがよろしくお願いします。

A 回答 (2件)

#define 部分を mydef.h のようなファイルにまとめておき、各プログラムには、


#include "mydef.h"
とすればよいです。

makeを使っている場合は、依存関係を追加したほうが楽です。例えば、a.cというファイルでmydef.hをincludeするなら、Makefileの中に
a.o : mydef.h
という行を追加しましょう。

蛇足ですが、<mydef.h>ではなく"mydef.h"と記述することで、システムのディレクトリーではなく、カレントディレクトリー中のファイルを探します。
    • good
    • 0
この回答へのお礼

なるほど、ヘッダファイルの存在は以前から知っていたのですが、よくわからないまま、分割コンパイルに頼りきっていました。このような使い方があったのですね。ありがとうございました。

お礼日時:2002/07/09 10:28

このプログラムがmaeda.cだとすると、


maeda.hというファイルを作ります。
そこには、

#define number 10
と、記述します。
そして、maeda.cには、

#include "maeda.h"

と、記述して、maeda.hを取り込むようにします。
それ以外にもファイルがあって、
たとえば、それがhigashide.cとすれば、
higashide.cにも、

#include "maeda.h"

と記述します。
    • good
    • 0
この回答へのお礼

できました。ありがとうございました。

お礼日時:2002/07/09 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A