- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 授業/C言語基礎/プロトタイプ宣言 へ行く。
- 1 (2015-12-25 (金) 11:27:14)
- 2 (2015-12-25 (金) 13:49:21)
- 3 (2015-12-29 (火) 00:09:25)
- 4 (2015-12-29 (火) 11:07:05)
- 5 (2016-01-07 (木) 09:34:36)
プロトタイプ宣言 †
関数のプロトタイプ宣言は、関数の宣言です。
戻り値の型 関数名(引数1の型 引数1の名前, 引数2の型 引数2の名前, ...);
関数を使う前に、戻り値の型、関数名、引数の型、引数名を宣言しておかなければなりません。
void inc(int i); // プロトタイプ宣言 int main(void) { int i = 0; inc(i); // 変数を渡す printf("%d\n", i); return 0; } /* * 受け取った引数の値を1増やして出力する(関数定義) */ void inc(int i) {{ i++; printf(">> %d\n", i) }
プロトタイプ宣言を省略できる場合 †
以下の二つの場合には、プロトタイプ宣言を省略することができます。
関数定義 †
関数定義は、プロトタイプ宣言の代わりにできます。
したがって、使用されるよりも前に関数が定義されている場合は、プロトタイプ宣言を省略できます。
これまでプロトタイプ宣言がなくても問題がなかったのは、このためです。
関数の戻り値がint型 †
プロトタイプ宣言がないと、戻り値はint型であると仮定してコンパイルを進めます。
関数定義において戻り値がint型でないと、コンパイル時にエラーが発生します。
ポインターによる参照渡し(おまけ) †
C言語の参照渡しは、ポインター型の引数に、変数を記憶している領域のアドレスを渡すことによって行います。
ポインターとアドレスについては、C言語応用で勉強する内容なので、ここでは詳しくは説明しません。
int main(void) { double x1 = 1.2, x2= 2.4; double y = add(x1, x2); printf("%f\n", y); return 0; } double add(double d, double e) { return d + e; }
luna% a.out >> 1 1