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

时间:2009-07-20 01:30:56

标签: c parameters declaration

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

这种宣言叫做什么?

什么时候有效/无效,包括C或C ++,某些标准版本和编译器?

5 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:5)

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

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

无论如何,由于a problem with function prototypes,建议不要使用此样式。

答案 2 :(得分:4)

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

答案 3 :(得分:4)

那是老式的C.它很少见。

答案 4 :(得分:-8)

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

int someFunction(int someParamX int someParamY);