関数とは、ある特定の処理をまとめたものです。関数は宣言と定義をして、呼び出すことで使うことができます。動作確認で使用しているprintfも関数になります。
関数の宣言
C言語では関数を使うために、まず宣言をする必要があります。宣言は以下の形式で行います。
戻り値の型 関数名(引数の型 引数名);
関数は値を1つ返すことができます。戻り値にはその返す値の型を指定します。
関数名には、変数と同様に英数字とアンダースコア(_)を使うことができます。
引数には、関数に渡す値の型とその変数名を指定することができます。引数は カンマ(,)で区切ることで複数記述することができます。また、宣言においては引数名を省略することができます。
以下に、関数の宣言の例を示します。
int Func(int arg1, int arg2);
関数の定義
関数の定義は、宣言の後に行うことができます。定義を先に行うとコンパイルエラーになります。定義は以下の形式で行います。
戻り値の型 関数名(引数の型 引数名)
{
処理;
return 戻り値;
}
戻り値がvoid型(戻り値なし)の場合は、return文を書く必要はありません。ただし、関数を抜けるためにreturn文を書くことはあります。また、return文は複数記述することができます。
以下に、2つの引数のうち、値の大きい方を返す関数の定義の例を示します。
int max(int arg1, int arg2)
{
if(arg1 < arg2){
return arg2;
}else{
return arg1;
}
}
関数の呼び出し
定義した関数は、別の関数から呼び出して使うことができます。
以下に、先程定義したmax関数をmain関数から呼び出す例を示します。
#include <stdio.h>
int max(int arg1, int arg2);
int main(void)
{
int ret;
ret = max(10, 20);
printf("ret = %d\n", ret);
}
int max(int arg1, int arg2)
{
if(arg1 < arg2){
return arg2;
}else{
return arg1;
}
}
実行結果
ret = 20