可能重复:
Declaring function parameters after function name
C function syntax, parameter types declared after parameter list
我对C来说相当新,并且正在调整计时并遇到以下功能。我可以通过传递指针来使它工作。我真的不明白这里发生了什么。第三行是做什么的,第二行甚至是合法的?
int
timeval_subtract (result, x, y)
struct timeval *result, *x, *y;
{
... (function code here)
}
答案 0 :(得分:5)
这是函数声明的非常古老的C语法。不建议使用它。
答案 1 :(得分:3)
看起来像一些旧的C代码。 (Kernighan& Ritchie,根据其他答案。)
这定义了参数的顺序:
timeval_subtract (result, x, y)
这定义了它们的类型:
struct timeval *result, *x, *y;
它与:
相同int timeval_subtract (struct timeval *result,
struct timeval *x,
struct timeval *y)
{
// ...
}
(那些struct
在C ++中是多余的,而最新版本的C,IIRC。)
答案 2 :(得分:0)
看起来很古老的C,就像K& R C之类的东西......我认为这不是合法的ANSI C.