C言語ユーザー定義関数ステップバイステップガイド
C言語ユーザー定義関数ステップバイステップガイド
このチュートリアルでは、Cプログラミングでのユーザー定義関数の作成、プロトタイプ宣言、使用方法を明確な例で学びます。
関数とは?
関数は特定のタスクを実行する自己完結したコードブロックです。C言語では独自の関数、すなわちユーザー定義関数を定義して、プログラム全体で再利用可能なロジックをカプセル化できます。
シナリオ例
半径と選択した色に基づいて円を作成し、色を塗る必要があるとします。これは2つのユーザー定義関数で解決できます:
createCircle()color()
例: 2つの整数の加算
以下は、ユーザー定義addNumbers()関数を使って2つの整数を加算するシンプルなプログラムです。
#include <stdio.h>
int addNumbers(int a, int b); // 関数プロトタイプ
int main(void) {
int n1, n2, sum;
printf("2つの数を入力: ");
scanf("%d %d", &n1, &n2);
sum = addNumbers(n1, n2); // 関数呼び出し
printf("sum = %d\n", sum);
return 0;
}
int addNumbers(int a, int b) // 関数定義
{
int result = a + b;
return result; // return文
}
関数プロトタイプ
関数プロトタイプは、関数の名前、戻り値の型、パラメータを宣言し、定義の前にコンパイラにその存在を知らせます。関数本体は含みません。
構文
戻り値の型 関数名(型1 引数1, 型2 引数2, ...);
例では、int addNumbers(int a, int b);がaddNumbersがintを返し、2つのintパラメータを取ることをコンパイラに伝えています。
ユーザー定義関数がmain()より前に定義されている場合、プロトタイプは省略可能です。
関数呼び出し
必要な引数を指定して関数を呼び出すことで、制御が関数に移ります。
構文
関数名(引数1, 引数2, ...);
サンプルプログラムでは、addNumbers(n1, n2);がn1とn2の値を関数に渡します。
関数定義
定義には、関数が呼び出されたときに実行される実際のコードが含まれます。
構文
戻り値の型 関数名(型1 引数1, 型2 引数2, ...) {
// 関数本体
}
addNumbersが呼び出されると、コンパイラはこのブロックにジャンプし、加算を実行して結果を返します。
引数渡し
引数は関数呼び出し時に供給される実際の値です。関数のパラメータがこれらの値を受け取ります。
引数の型はパラメータの型と一致しなければならず、不一致の場合コンパイラはエラーを出します。例えばn1がcharなら、対応するパラメータaもcharでなければなりません。
引数が不要な場合、引数なしで関数を呼び出すこともできます。
return文
returnキーワードは関数を終了し、オプションで呼び出し元に値を返します。
構文
return 式;
例では、return result;が合計をmain()に返し、そこではsumに格納されます。
戻り値の型が関数の宣言された戻り値の型と一致することを確認してください。
引数渡しと戻り値のより深い洞察については、高度なC関数概念を参照してください。
C言語