文法事項: “宣言”に追加
| 分類 | 一般形 | 補足説明 |
|---|---|---|
| 関数プロトタイプ宣言 |
型 関数名 ( 型 変数名 , ..., , 型 変数名 ) ;
|
変数名は省略可能 |
関数定義が使うよりも前にある場合は、定義が宣言を兼ねるのでプロトタイプ宣言は不要である。
#include <stdio.h>
の stdio.hはヘッダファイルと呼ばれ、printf, putcharなどの
関数のプロトタイプ宣言が集められたファイルである。
bcc32の場合、c:\borland\bcc55\Include\stdio.hに実体がある。
(処理系により標準のヘッダファイルがおかれる場所は異なる。)
#includeはファイルの内容を、そっくりそのままその場所に読み込む指令である。
ライブラリ関数(前もって用意された仮数)を利用する時は、
適切なヘッダファイルをインクルードする必要がある。
例えば、sin, cos,
sqrtなどの数学関数を利用する時は math.hをインクルードする。
staticという修飾子がついていないもの
staticという修飾子がついているもの
factorial(5)
-> 5 * factorial(4)
-> 5 * 4 * factorial(3)
-> 5 * 4 * 3 * factorial(2)
-> 5 * 4 * 3 * 2 * factorial(1)
-> 5 * 4 * 3 * 2 * 1 * factorial(0)
-> 5 * 4 * 3 * 2 * 1 * 1
注:
繰返し(for, while)で簡単に実現できることを,
再帰で書くのは(C言語の場合)良いこととはいえない。上の例題プログラムは、
あくまでも再帰を説明するためのものと考えること。
再帰関数には、特別な文法も特別な実行規則も必要ない。 あくまでも C言語の普通の関数で、普通の実行規則に基づいて計算される。
現時点のC言語の知識では、 再帰関数の例として、パズルのようなプログラムしか示すことができない。 しかしもう少し複雑なデータ構造を扱う時は、再帰関数はごく日常的なものである。