関数を使う前には、関数プロトタイプの宣言が必要。前にも書いたけどこんなふうに書く。
型 関数名(型 仮引数1, 型 仮引数2, ..., 仮引数N);
コンパイラはこの宣言から次の情報を得る。
- 関数の戻り値の型
- 仮引数の数
- 仮引数の型
ANSI C では、歴史的経緯によりプロトタイプがなくてもいいことになっているそうだけど、関数を使う前に宣言しておくのが普通。というか常識。常に書くべし。
標準ライブラリの関数も、ヘッダファイルにプロトタイプが書かれている。使う関数によって対応するヘッダファイルを読み込む必要があるのはこのため。
関数の戻り値がない、仮引数がないときには、キーワード vold を使う。
void myfunc(int x);
int myfunc(void);
main 関数だけは特別で、プロトタイプが必要ない。