C言語-インタプリタminiBASIC |
6. ファイルの分割とMAKEコマンド
ファイルの分割
このまま残りの命令や制御文の処理を追加していくと、プログラムファイルが大きくなり、コンパイルなどの処理が遅くなる。ここではコマンド処理の関数(mb_input, mb_print)を別のファイルmb_cmds.cに分割する。mbas05.cはmbas06.cにコピーした。
6: /* 関数プロトタイプ宣言 */ 7: void mb_input(void); 8: void mb_print(void);
6: /* グローバル変数 */ 7: double hensuu[26]; /* 変数用(A - Z) */
[mbas06.c] | |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 71: |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "gettoken.h"
/* 関数プロトタイプ宣言 */
@ void mb_print(void);
@ void mb_input(void);
/* グローバル変数 */
double hensuu[26]; /* 変数用(A〜Z) */
void main(int argc, char *argv[])
{
<<省 略>>
}
|
[mb_cmds.c] | |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 16: 17: 18: 28: |
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include "gettoken.h" /* グローバル変数 */ @ double hensuu[26]; /* 変数用(A〜Z) */ void mb_print(void) { <<省 略>> } void mb_input(void) { <<省 略>> } |
MAKEコマンド
コンパイルに必要なファイルは、mbas06.c, mb_cmds.c と gettoken.c の3つである。
cc mbas06.c mb_cmds.c gettoken.o
分割したファイルが増えてくるとコンパイルするコマンドも長くなるので、makeコマンドを使用する。
次のようにコンパイルに必要なファイルを設定ファイルmakefileに記述する。
MAIN = mbas06
CMDS = mb_cmds
OBJ = $(MAIN).obj $(CMDS).obj gettoken.obj
all: mbas.exe
mbas.exe: $(OBJ)
[Tab] lcc -o mbas $(OBJ)
$(MAIN).obj: $(MAIN).c
$(CMDS).obj: $(CMDS).c
gettoken.obj: gettoken.c gettoken.h
[コンパイル]
make
必要なファイルが自動的にコンパイルされる。
Copyright © 2001 Hiroshi Masuda |