如果主函数声明后的两行出现在C代码中,这是什么意思?
int main(argc,argv)
int argc;
char *argv[];
{
// main function body
}
我以前从未见过这样的事情。代码工作正常,但我很想知道这意味着什么。谢谢!
答案 0 :(得分:1)
它只是另一种声明该特定函数的参数数据类型的方法。
答案 1 :(得分:1)
这是在K& R C中声明参数参数的原始(阅读:古代)风格。在ANSI C标准中,您可能熟悉的形式是标准。
另请参阅:What are the major differences between ANSI C and K&R C?
答案 2 :(得分:1)
那是"K&R" C。它已经过时了。
即使您的编译器支持它,也不要使用它。传递给以这种方式定义的函数的参数将经历参数提升,以便每个参数具有相同的大小(通过在最新的C代码中提升varargs的相同机制)。
此类代码也不支持函数声明/原型。永远不要试图改善"这样的代码通过创建函数原型 - 你将打破函数所期望的参数提升。