在函数名称后声明函数参数

int func(x) int x; { ............. 

这种宣言叫什么?

它何时有效/无效,包括C或C ++,某些标准修订和编译器?

它仍然有效,但它是ANSI之前的。 这实际上是K&R缩进风格得名的地方。 function块后面的开口括号是因为这看起来很奇怪:

 int func(x) int x; { ... } 

无论如何,由于函数原型的问题,不建议使用此样式。

这是K&R C参数声明语法,它在ANSI C中有效,但在C ++中无效。

K&R风格,我认为它仍然有效,尽管气馁。 它可能来自Fortran(其中函数参数类型在函数体内定义,仍然在最近的F95中)

这是旧式的C.它很少见。

这是一个function原型。 如果你没有这样做,你必须在main之前完全写出函数,否则编译器在main中使用它时不会知道函数是什么。 它不是很具描述性,所以它不再使用了。 你想要使用类似的东西:

 int someFunction(int someParamX int someParamY);