C标准说:
程序启动时调用的函数名为 main。实现没有声明这个函数的原型。它应定义为返回类型为 int 且不带参数:
int main(void) { /* ... */ }
或者带有两个参数(这里称为 argc 和 argv,尽管可以使用任何名称,因为它们是声明它们的函数的局部变量):
int main(int argc, char *argv[]) { /* ... */ }
或等效的或以某种其他实现定义的方式。
然而,Kernighan & Ritchie 在他们的第二版(规范的 ANSI C)圣经中只使用:
main()
{
/* taram pampam ... */
return 0;
}
谁是对的?它是否与没有返回值的函数有关,自动假设int
在 C 中返回?