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 回答