在浏览unzip的源码时,遇到了一个main函数如下,
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 编译器并没有提示它。为什么它在语法上是正确的?
谢谢。
最佳答案
这是旧的 K&R 风格的函数声明。所以是的,它是有效的 C,但很旧 C。
我不建议编写这种类型声明,因为它已经完全过时了,并且可能会使不熟悉语法的阅读您的代码的人感到困惑。
关于c - 这个特殊的main函数有什么特别之处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543460/