C言語における関数は、諸君らが使い慣れた、数学で使う「関数」と同じ概念として考えることができます。例えば、と定義される関数があるとします。 関数fの引数x=2,y=1とする、つまり、f(2,1)は9という値になります。f(x,y) = 3x + 2y + 1
上記の数学の関数を、C言語の「関数」func()として宣言し、定義し、呼び出すようなプログラムで表現してみると、以下のようなプログラム例が挙げられるでしょう。C言語では、関数mainが必ず存在し、そこからプログラムの実行が始まります。関数mainから関数funcを呼び出すと、実行はその関数funcの中に移り、関数funcの実行が終わると再び、関数mainのこの関数を読んだ場所に戻ってきます。関数funcは、数学の関数のように、引数を与えて呼び出すと、関数で何らかの処理、計算を行い、結果を返します。
#include <stdio.h> /* 標準入出力関数を使うためのヘッダファイル */ /* 関数のプロトタイプ宣言 */ int func(int x, int y); /* 関数mainの定義 */ int main(void) { int x, y; /* 関数の引数となる変数 */ int val; /* 関数が求めた値を格納する変数 */ x = 2; /* 関数の第1引数 */ y = 1; /* 関数の第2引数 */ /* 関数呼び出し */ val = func(x, y); /* 結果をvalに格納 */ printf("val = %d\n", val); /* 関数値を表示 */ } /* 関数funcの定義 */ int func(int x, int y) { int val; /* 関数が求めた値を格納する変数 */ val = 3*x + 2*y + 1; /* 引数x,yの値を用いて関数の値を計算 */ return val; /* 結果の値を返す */ }