Next: 関数呼び出し (matx)
Up: 可変長引数関数
Previous: リストを利用した可変長引数関数
Func void foo()
{
Matrix a, b, c;
Matrix afo(...);
read a, b, c;
print afo();
print afo(a);
print afo(a, b);
print afo(a, b, c);
}
Func Matrix afo(a, b, c, ...)
Matrix a, b, c;
{
if (nargs == 0) {
return Z(0);
} else if (nargs == 1) {
return a;
} else if (nargs == 2) {
return a + b;
} else if (nargs == 3) {
return a + b + c;
}
}
可変長引数関数の定義は,引数リストの最後に``...
''を追加することを除いて
普通の関数の定義と変わらない。また,可変長引数関数を呼び出す側では,普通の
関数を呼び出す時と同じように,関数を定義しなければならない。宣言の方法は,
関数の型に続いて``関数名(...)
''を書く。可変長引数関数が呼び出されると,
呼出時に渡された引数の個数が,特別な変数 nargs
にセットされる。
Masanobu KOGA
平成10年8月19日