次のように複数の変数を宣言できる場合:
int i, j, k;
次に、仮引数を記述するとエラーが発生するのはなぜですか。
void fun(int i, j, k)
それ以外の:
void fun(int i, int j, int k)
次のように複数の変数を宣言できる場合:
int i, j, k;
次に、仮引数を記述するとエラーが発生するのはなぜですか。
void fun(int i, j, k)
それ以外の:
void fun(int i, int j, int k)
これは、C 構文がどのように機能するかではないためです。パラメータの宣言は、いくつかの点で変数の宣言とは異なります。
void fun(int i, double x);
対。
int i, double x; // syntax error
構文を拡張して、試した形式を許可することもできました (たとえば、 Go with its によって許可されていますがfunc fun(i, j, k int)
、標準委員会はこれを行わないことを決定しました。おそらく、古いスタイル ("K&R "、1989 年より前) のパラメーター構文であり、下位互換性のために ANSI C89/ISO C90 でサポートされていました。
void fun(i, j) // K&R syntax: implicitly int i, int j
{
}
void fun(i, p)
int *p; // int i implicit!
{
}
// What's this? double i? double *i? Mixed K&R/ANSI syntax with implicit int i?
void fun(double *x, i)
{
}