int main(void)函数的返回值是0吗?

时间:2014-09-17 03:29:37

标签: c function return-value

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

int main(void) {
    printf("Does this function require return value");

    return 0; // is this correct? 
}

2 个答案:

答案 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。但是,即使您不必使用返回语句也是一种很好的编程习惯。