0

GNU C library - Date-time - Data & Functionsを読んでいて 、この関数定義に出くわしました:

int timeval_subtract (result, x, y)
 struct timeval *result, *x, *y;
{
    //do stuff
    return result;
}

私はこれまでにこの議論に出くわしたことはありません。・()内の変数には型がありません。-OK タイプ「struct timeval」は後で来るが、同じ変数名を使用する?

上記は完全に同等ですか

int struct_timeval(struct timeval *result, struct timeval *x, struct timeval *y){

    //do stuff
}

か否か?

4

1 に答える 1

1

古いスタイルの関数宣言です。宣言で識別子リストを使用します。

この種の宣言は、関数プロトタイプと同等ではありません。プロトタイプを使用すると、関数の引数は代入によるかのようにパラメーターの型に変換されますが、プロトタイプを使用しない場合、既定の引数の昇格が発生します。

于 2013-07-11T12:53:59.110 に答える