代码之家  ›  专栏  ›  技术社区  ›  Tim Matthews

在函数名后声明函数参数

  •  5
  • Tim Matthews  · 技术社区  · 16 年前
    int func(x)
    int x;
    {
        .............
    

    这种声明叫什么?

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

    5 回复  |  直到 16 年前
        1
  •  5
  •   Mike Mu    16 年前

    它仍然有效,但它是pre-ansi。这就是K&R缩进样式的名称所在。打开括号在功能块后面的行上,因为这看起来很奇怪:

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

    无论如何,不建议使用这种样式,因为 a problem with function prototypes .

        2
  •  12
  •   Jeff Leonard    16 年前

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

        3
  •  4
  •   Stefano Borini    16 年前

    K&R风格,我认为它仍然有效,尽管不鼓励。它可能来自FORTRAN(函数参数类型在函数体中定义,但仍在最近的f95中)

        4
  •  4
  •   Michael Kohne    16 年前

    那是老式的C。现在很少见到了。

        5
  •  -8
  •   mikeyickey    16 年前

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

    int someFunction(int someParamX int someParamY);