后函数名声明函数参数(Declaring function parameters after fun

2019-06-26 08:36发布

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

这是什么样的声明的叫什么?

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

Answer 1:

它仍然是有效的,但它是ANSI前。 这实际上是在K&R的缩进风格而得名。 开幕支架的功能块之后的行,因为这看起来奇怪:

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

总之,不建议,因为这种风格与函数原型的一个问题 。



Answer 2:

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



Answer 3:

K&R的风格,我认为它仍然是有效的,但灰心。 这可能是从Fortran语言来(如函数参数类型仍然在最近F95在函数体中定义)



Answer 4:

这是老式的C.它很少见到了。



Answer 5:

It's a function prototype. If you didn't do it this way you'd have to write the function out entirely before main, otherwise the compiler wouldn't know what the function was when you used it in main. It's not very descriptive, so it's not used anymore. You'd want to use something like:

int someFunction(int someParamX int someParamY);


文章来源: Declaring function parameters after function name