在C语言中,在函数头和函数体之间声明变量意味着什么?

在C语言中,在函数头和函数体之间声明变量意味着什么?,c,syntax,C,Syntax,现在有几次,我遇到这样的代码: int main(argc, argv) int argc; char **argv; { ... } 为什么argc和argv以这种方式声明?这是用于K&R*参数列表的语法 *K&R——Brian Kernighan和Dennis Ritchie,这本书的作者,“。”也是C编程语言的创造者,与UNIX操作系统Ken Thompson合作。这意味着它是在1987年左右写的。今天使用K&R风格有什么优势吗?您发布的链接建议使用ANSI样式。即使您的编译器仍

现在有几次,我遇到这样的代码:

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

为什么
argc
argv
以这种方式声明?

这是用于K&R*参数列表的语法


*K&R——Brian Kernighan和Dennis Ritchie,这本书的作者,“。”
也是C编程语言的创造者,与UNIX操作系统Ken Thompson合作。

这意味着它是在1987年左右写的。今天使用K&R风格有什么优势吗?您发布的链接建议使用ANSI样式。即使您的编译器仍然支持它,也不要在新代码中使用此样式。我再怎么强调也不为过。此外,我还更新了指向维基百科的链接,维基百科提供了更多关于这种风格及其历史的信息,没有任何优势。这是旧的标准前C样式,虽然它仍然受支持,但被认为已经过时。