在我关于C的书中,作者通常将main()
格式化为:
main()
{
/* Some code */
return;
}
但有时候,他会像这样格式化main()
:
main()
{
/* Some code */
return 0;
}
有什么区别?这有关系吗?
答案 0 :(得分:4)
C标准说(草稿n1570)
程序启动时调用的函数名为
main
。实施宣布否 这个功能的原型。 应使用int
的返回类型进行定义,但不能 参数:int main(void) { /* ... */ }
或有两个参数(此处称为
argc
和argv
,但可能有任何名称 使用,因为它们是声明它们的函数的本地函数):int main(int argc, char *argv[]) { /* ... */ }
或等同物; 10)或以某种其他实现定义的方式。
现在,如果函数的返回类型不是void
,那么你必须使用
return exp;
如果其返回类型为void
,则可以使用(不必要)
return;
如果是main
,您可以使用return 0;
,但C99允许您省略return语句。
答案 1 :(得分:2)
首先,main
应声明为:
int main(void)
或
int main(int argc, char *argv[])
带有命令参数的版本有一些变体,如int main(int argc, char **argv)
必须返回int
才能符合标准。因此,如果程序正常运行,您必须在结尾int
返回return 0
。
请注意,在C99或更高版本中,您可以省略return 0
。如果main
执行到最后,则return 0
是隐含的。
答案 2 :(得分:0)
返回值表示(un)成功完成环境,允许所述环境监视它而不是解析打印的消息。 - 见this question.
您应该在return 0
中使用main
,并使用正确声明的main
函数。在声明为void
的函数中,只有return
没有值,或者让它从末尾开始(没有return
语句)。