如果我在C中有int main(void)
函数,它是否应该有return 0
?如果是这样,为什么?
int main(void) {
printf("Does this function require return value");
return 0; // is this correct?
}
答案 0 :(得分:2)
是的。您可以将返回值用作状态。
返回0通常表示成功。
这是一篇讨论此事的有趣文章: http://www.eskimo.com/~scs/readings/voidmain.960823.html
C编程语言允许退出或返回主函数的程序通过返回整数或返回宏EXIT_SUCCESS和EXIT_FAILURE来指示成功或失败。在类Unix系统上,它们分别等于0和1。 C程序也可以使用exit()函数指定整数状态或退出宏作为第一个参数。 http://en.wikipedia.org/wiki/Exit_status#C_language
答案 1 :(得分:1)
是的,在C89下,main()是可以接受的,尽管建议使用C99标准,只有这些标准是可以接受的:
int main ( void )
int main ( int argc, char *argv[] )
上述的微小变化是可以接受的,其中int可以被定义为int的typedef名称替换,或者argv的类型可以写为char ** argv,依此类推。
当您不需要访问命令行参数时,将使用第一个选项。
名称argc和argv是可以根据需要更改的标识符,但坚持使用argc / argv是常规。
main()的返回类型必须始终为int,这允许将返回代码传递给调用者。
在C89下,main()末尾的return语句是必需的,而在C99下如果不存在return语句,则隐含返回0。但是,即使您不必使用返回语句也是一种很好的编程习惯。