実際にソースファイルを分割したプログラムを作ってみよう。
簡単な例として、sub
関数で足し算を行なうだけの、
#include <stdio.h>
int main()
{
int add(int, int); /* プロトタイプ宣言 */
int x=5, y=4;
int result;
result = add(x, y);
printf("%d + %d は %d です\n", x, y, add(x, y));
}
int add(int v1, int v2)
{
return v1+v2;
}
このプログラムの、main関数とそれ以外を分けると以下のようになる。
#include <stdio.h>
int main()
{
int add(int, int); /* プロトタイプ宣言 */
int x=5, y=4;
int result;
result = add(x, y);
printf("%d + %d は %d です\n", x, y, add(x, y));
}
int add(int v1, int v2)
{
return v1+v2;
}
main
関数では、main.c
の中には存在しない
add
関数を呼んでいる。しかし、main
関数先頭部分
で宣言したadd
のプロトタイプ宣言により、Cコンパイラは、
「
add
って関数がどっかにあるんだな」
と手がかりをもらうので、最後まで迷うことなくコンパイルできる。
上記の2つのソースプログラム main.c, sub.c
を作成し
実際にコンパイル&リンクしてみよう。
gcc -c main.c
gcc -c sub.c
gcc -o main main.o sub.o
実行結果を確認しよう。
./main
5 + 4 は 9 です
この例では、二つのファイルから実行プログラムを作成したが、 実際には何個のファイルで作成しても良い。