这是我的程序:
main()
{
printf("hello world\n");
}
我在编译时收到这个警告:
function should return a value
将 main()
更改为 void main()
时,警告消失。
为什么会这样?
最佳答案
有几点需要注意:
int
是main()
函数的返回类型。这意味着main()
的值类型可以 返回是一个整数。main( )
可以被 C90 编译器接受,但不能被 C99 编译器接受,这意味着它不再是 C99 标准的一部分,所以不要这样做。void main()
不是标准形式,一些编译器允许这样做,但没有任何标准将其列为选项。所以, 编译器不必接受这种形式,有几个也不会。 同样,坚持标准形式, 如果您将程序从一个编译器移至另一个编译器,您将不会遇到问题。还有最后一件事,而不是像这样写 main :
int main()
//在这里您对将参数传递给 main 保持沉默,这意味着它可能会也可能不会接受参数
这样写:
int main(void)// this specifies there are no arguments taken by main
你可能想看看 C99 standard 了解更多详情。
关于c - 没有返回类型定义的 main() 函数给出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158541/