1.1 関数とモジュール化の基本

  1.簡単な例
 C言語における関数は、諸君らが使い慣れた、数学で使う「関数」と同じ概念として考えることができます。例えば、
f(x,y) = 3x + 2y + 1
と定義される関数があるとします。 関数fの引数x=2,y=1とする、つまり、f(2,1)は9という値になります。
 上記の数学の関数を、C言語の「関数」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;            /* 結果の値を返す */ 
} 
 C言語では、関数mainが必ず存在し、そこからプログラムの実行が始まります。関数mainから関数funcを呼び出すと、実行はその関数funcの中に移り、関数funcの実行が終わると再び、関数mainのこの関数を読んだ場所に戻ってきます。関数funcは、数学の関数のように、引数を与えて呼び出すと、関数で何らかの処理、計算を行い、結果を返します。