3

可能重复:
C 中有多少种编写函数的风格?

我看到了一个用 C 编写的程序,其定义如下main

main(ac, av) int ac; char **av;
{
    ...
}

代替

int main(int argc, char **argc)
{
    ...
}

我从未见过像第一个代码那样的 C 语法。它是什么,我在哪里可以读到它?

4

1 回答 1

7

第一个是在函数原型成为编写代码的通用/标准方式之前的旧式、ANSI 之前的 C 函数头。

经常这样格式化:

main(ac, av) 
int ac; 
char **av;
{
    ...
}

您在最初的括号集之后看到的是 中参数的类型声明main。另请注意,没有int声明返回类型。

没有人真正写出那样的代码,坚持第二种形式。

如果您可以挖掘Kernighan 和 Ritchie 的原始白皮书(第 1 版,ANSI 之前),您会看到这种形式(正如 @dirkgently 正确提到的,这有时被称为 K&R 风格 C),就像在其他旧的C书。

如果您对函数声明和定义的过时形式感到好奇,也请查看此链接 。在 google 中搜索“旧式 C 函数声明”会找到很多结果。

于 2012-06-03T13:05:30.883 回答