gcc编译没有错误,没有返回类型(甚至使用-Wall)

时间:2016-09-18 01:09:31

标签: c gcc return-value

我想知道为什么gcc在编译时不会显示错误,即使在使用-Wall选项时也是如此。还尝试了-std = c89选项。

以下是代码:

#include <stdio.h>

int main(void)
{
   printf("hello, world\n");
}

很抱歉,如果这篇文章重复,但无法找到使用此选项的情况。

谢谢!

1 个答案:

答案 0 :(得分:1)

在C ++和C99及更高版本中,在不返回值的情况下命中main()的末尾等同于返回0.在C标准的早期版本中,编译器未定义的行为是未定义的行为。尽管在实践中,GCC可能会像C ++或C99一样进行隐式return 0;

有关详细信息,请参阅What should main() return in C and C++?