主函数如何在C中有2个声明/定义?

main()C 中的函数有多个定义。

int main (void) { body }    (1) 
int main (int argc, char *argv[]) { body }  (2) 

(https://en.cppreference.com/w/c/language/main_function)。

这怎么可能,因为 C 不能有同一个函数的多个声明/定义?

回答

main函数的特殊之处在于它由运行时调用,因此它允许具有这两个签名之一,但不能同时具有这两个签名。

据推测,运行时将所需的参数推送到堆栈上作为调用的一部分,main而不必使用它们。因为这被认为是实现的一部分,所以它可以做普通程序通常不能(或不应该)做的事情。


以上是主函数如何在C中有2个声明/定义?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>