当我浏览解压缩的源代码时,我遇到了一个主要功能如下,
int MAIN(argc, argv) /* return PK-type error code (except under VMS) */
int argc;
char *argv[];
{
int r;
CONSTRUCTGLOBALS();
r = unzip(__G__ argc, argv);
DESTROYGLOBALS();
RETURN(r);
}
我认为这样定义的主函数在编译时不会通过。但我的c编译器并没有抱怨它。为什么它在语法上是正确的?
感谢。
答案 0 :(得分:6)
这是旧的K& R样式函数声明。所以是的,它是有效的C,abeit 很旧 C.
我不建议写这种类型的声明,因为它已经完全过时,并且可能会让读者不熟悉语法的人感到困惑。