分割コンパイルで
ファイル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の値も変更するプログラムの組み方はありませんか?
質問がわかりにくいかも知れませんがよろしくお願いします。
No.1ベストアンサー
- 回答日時:
#define 部分を mydef.h のようなファイルにまとめておき、各プログラムには、
#include "mydef.h"
とすればよいです。
makeを使っている場合は、依存関係を追加したほうが楽です。例えば、a.cというファイルでmydef.hをincludeするなら、Makefileの中に
a.o : mydef.h
という行を追加しましょう。
蛇足ですが、<mydef.h>ではなく"mydef.h"と記述することで、システムのディレクトリーではなく、カレントディレクトリー中のファイルを探します。
なるほど、ヘッダファイルの存在は以前から知っていたのですが、よくわからないまま、分割コンパイルに頼りきっていました。このような使い方があったのですね。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- その他(プログラミング・Web制作) Arduino UNO のC言語 2 2023/04/18 19:42
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
構造体のextern方法
C言語・C++・C#
-
C言語初心者の質問失礼します。
C言語・C++・C#
-
#defineの定数を文字列として読み込む
C言語・C++・C#
-
-
4
char str[256]の256の意味は?
C言語・C++・C#
-
5
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
6
関数から配列を返すには?
C言語・C++・C#
-
7
2重定義って??
C言語・C++・C#
-
8
ソース内の行末に\\
C言語・C++・C#
-
9
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
10
C言語でヘッダファイルにグローバル変数を宣言する
C言語・C++・C#
-
11
C言語での引数の省略方法
C言語・C++・C#
-
12
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
13
math.hに含まれる関数が使えない
C言語・C++・C#
-
14
typedef enumの使い方を教えてください
C言語・C++・C#
-
15
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
16
fopne で失敗する原因
C言語・C++・C#
-
17
既定のコンストラクタがない?
C言語・C++・C#
-
18
数字以外が入力されたらエラー文を出したい。
C言語・C++・C#
-
19
C言語のポインターに関する警告
C言語・C++・C#
-
20
IG、ACC、+B、ILL
国産バイク
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
テキストファイルの最終行を削...
-
csvファイルを開かずに文字を検...
-
Excelマクロでの再読込み方法
-
ダイアログボックスで複数フォ...
-
ファイル名の先頭にアンダース...
-
ShellExecuteEx→WaitForSingleO...
-
バッチで118項目のCSVを処理し...
-
SGファイルって何ですか?
-
[VBScript]ファイルの入出力を...
-
この問題のファイルを読み込ん...
-
CSVファイルへの保存の際、デー...
-
ファイルからサイズ不明の行デ...
-
Wordファイルの結合
-
グローバル変数のよくない使い...
-
.jarおよび.dllについて
-
C言語について
-
インクルードファイルとインラ...
-
■ 移植性のないポインタ変換に...
-
BI書、FD書 とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
大きいサイズのテキストファイ...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
グローバル変数のよくない使い...
-
C言語のfopenについて教えてく...
-
SGファイルって何ですか?
-
VBに、Cのincludeのようなもの...
-
ファイルの結合
-
fopenできる上限の変更
-
「VBScript」ADODB.Streamにお...
-
iniファイルに追記がしたいです。
-
XMLファイルの表示について
-
VBAにてEXCEL以外のファイル(テ...
-
Excelマクロでの再読込み方法
おすすめ情報