c-int main(void)函数是否返回0



如果我在C中有一个int main(void)函数,它应该有return 0吗?如果是,为什么?

int main(void) {
    printf("Does this function require return value");
    return 0; // is this correct? 
}
是的。您可以使用返回值作为状态。

返回0通常表示成功。

这里有一篇有趣的文章讨论这个问题:http://www.eskimo.com/~scs/reads/voidmain.960823.html

C编程语言允许退出或从主函数返回的程序通过返回整数或返回宏EXIT_success和EXIT_failure来表示成功或失败。在类Unix系统上,它们分别等于0和1。C程序也可以使用exit()函数指定整数状态或退出宏作为第一个参数。http://en.wikipedia.org/wiki/Exit_status#C_language

是的,在C89下,main()是可以接受的,尽管建议使用C99标准,在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。然而,始终使用return语句是一种很好的编程实践,即使您不必这样做。