1

如果我告诉编译器返回任何其他内容,我通常会收到编译器的警告。

4

3 回答 3

9

这是提供给调用程序的人的退出代码。非零值通常表示错误。

于 2012-11-11T18:59:00.973 回答
5

简短的回答:因为这就是 C 标准所说的:

5.1.2.2.1 程序启动

1 程序启动时调用的函数名为main。实现没有声明这个函数的原型。它应该被定义为返回类型int和不带参数:

int main(void) { /* ... */ }

或有两个参数(这里称为argcargv,尽管可以使用任何名称,因为它们对于声明它们的函数是局部的):

int main(int argc, char *argv[]) { /* ... */ }

或等效的;9)或以其他一些实现定义的方式。(强调我的)

于 2012-11-11T19:03:28.777 回答
1

C 标准要求它,因为没有机制可以与环境通信,您将返回除整数值之外的其他内容。因此,int是唯一可能的类型;它涵盖了所有平台以及他们期望进程返回给他们的预期数字范围。

于 2012-11-11T19:07:28.903 回答