c - 这个特殊的main函数有什么特别之处吗?

标签 c

在浏览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/

相关文章:

C - 使用 malloc 为结构赋值不起作用

c - 子进程的内存使用情况?

c - 验证特定字符的用户输入

c - 术语 'Segmentation fault (core dumped)' 是什么意思?

c - 中断的系统调用

java - '-> NewGlobalRef' 的 Left 必须指向 struct/union 是什么意思?

c - 移植 InterlockedExchange,仅使用 GCC 内部函数

c - switch 语句后最后一个数组编号一直出错

C 和函数中的指针 - 更改不保存

C 我的矩阵阅读器怎么了?