为什么要在定义函数的过程中声明变量?

时间:2014-02-10 16:43:20

标签: c

我必须修改ITU在工作中制作的G722编解码器的代码。

我包含了像这样的真实功能定义:

    int 
    main (argc, argv)
    int argc;
    char *argv[];
    {
    .
    .
    .
    }

为什么有人会使用这样的语法?

2 个答案:

答案 0 :(得分:1)

我通过谷歌搜索“老C风格声明”找到了答案,就像在评论中提到的那样。

答案是:

  

旧式函数声明和定义使用稍微不同的规则来声明参数,而不是ANSI C标准推荐的语法。首先,旧式声明没有参数列表。其次,在函数定义中,列出了参数,但它们的类型未在参数列表中声明。类型声明在构成函数体的复合语句之前。旧式语法已过时,不应在新代码中使用。但是,仍然支持使用旧式语法的代码。

来自:http://msdn.microsoft.com/en-us/library/efx873ys.aspx

答案 1 :(得分:0)

这是非常古老的(1989年之前的标准)函数定义语法。为了向后兼容性,它仍然是合法的,但它绝对不再推荐。

至于为什么任何人都会使用它,我能想到的唯一合理的场景是:

  • 此代码非常旧,没有人愿意冒险破坏它以使其更新;
  • 它托管在一个平台上,该版本的语言版本从未实现过;