関数の呼び出し

以前に記載されていない名称が式の中で表示され左括弧が続く場合、それは文脈上で関数の名称とみなされます。

関数名 (x1, x2,..., xn)

 

引数(仮パラメータ)は値によって関数に渡されます。つまり x1、•••、XN の各式が算出されその値が関数に渡されます。式の計算順序と値の読み込みの順序は保証されていません。実行中に、システムは関数に渡される引数の数と型をチェックします。このように関数に対処する方法は値渡しと呼ばれています。

関数呼び出しは、関数によって返される値を値とする式です。上記で説明された関数の型は戻り値の型と一致する必要があります。関数はプログラムのグローバルスコープ の任意の部分、つまり関数の外側で宣言または記述されることが出来ます。関数は別の関数の内部で宣言されたり記述されたりすることは出来ません。

例:

int start()
 {
  double some_array[4]={0.3, 1.4, 2.5, 3.6};
  double a=linfunc(some_array, 10.5, 8);
  //...
 }
double linfunc(double x[], double a, double b)
 {
  return (a*x[0] + b);
 }

デフォルトパラメータを使用した関数の呼び出しでは、渡されるパラメータのリストは制限されることがありますが、最初のデフォルトパラメータの前では無制限です。

例:

void somefunc(double init,
            double sec=0.0001, //初期値を設定する
            int level=10);  
//...
somefunc();                     // 不正な呼び方( 1 番目のパラメータの存在が必要)
somefunc(3.14);                 // 正しい呼び方
somefunc(3.14,0.0002);           // 正しい呼び方
somefunc(3.14,0.0002,10);       // 正しい呼び方

関数を呼び出す時は、初期値を持つパラメータも抜かせません。

somefunc(3.14, , 10);           // 不正な呼び方( 2 番目のパラメータが抜かされた)

参照

オーバーロード仮想関数ポリモーフィズム