
114
7
章 関数
int printf(const char* format, ...);
この例のように、引数型の列が最後のカンマの後、省略記号(…)で終わる。省略記号が
オプション引数を表す。
printf
関数呼び出しの第1引数は、
char
へのポインタでなければ
ならない。その後に引数を続けて構わない。プロトタイプには、関数が何個のどの型の引
数をオプションとして期待するかの情報はない。
7.2.2
可変長配列引数の宣言
関数定義の関数宣言子以外で関数の引数を可変長配列として宣言するとき、配列長にア
スタリスク(
*
)を使う。非定数整数式を使って配列長を指定すると、コンパイラはアスタリ
スクと同じように扱う。例えば、例7-5 で定義された
maximum()
関数のプロトタイプの宣言
は次のいずれでもよい。
double maximum(int nrows, int ncols, double matrix[nrows][ncols]);
double maximum(int nrows, int ncols, double matrix[][ncols]);
double maximum(int nrows, int ncols, double matrix[*][*]);
double maximum(int nrows, int ncols, double matrix[][*]);
7.3
関数はどのように実行されるか
関数実行命令、すなわち関数呼び出しは、関数名と演算子
()
(「5.2.8 その