C语言编的,提示 'main' must return 'int',是什么问题? 遇到main must return int 怎么解决

作者&投稿:肥芬 (若有异议请与网页底部的电邮联系)

在C++中,main()一般要求用int,即应写为 

int main (){ 

…… 

return 0; 

}

但有一些也可以写为void main() ,而有一些不能这么写,

任何时候都可以用int main(),所以建议不用void main(),

用C++编译器编译C一般不会有什么问题,因为C++是兼容C的。

扩展资料:

在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;这个函数就称为“main() 函数”,也就是“主函数”。比如有个“做菜”程序,那么“ 做菜 ”这个过程就是“主函数”。在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。

main函数在程序中大多数是必须存在的,但是依然有例外情况,比如windows编程中可以编写一个动态链接库(dll)模块,这是其他windows程序可以使用的代码。

由于DLL模块不是独立的程序,因此不需要main函数。再比如,用于专业环境的程序-----如机器人中的控制芯片--可能不需要main函数。

从函数参数的形式上看,包含一个整型和一个指向字符指针的指针。当一个C的源程序经过编译、链接后,会生成扩展名为.EXE的可执行文件(对windows操作系统而言),这是可以在操作系统下直接运行的文件,换句话说,就是由系统来启动运行的。由系统在启动运行时传递参数。

在操作系统环境下,一条完整的运行命令应包括两部分:命令与相应的参数。其格式为:

命令参数1参数2....参数nt;

此格式也称为命令行。命令行中的命令就是可执行文件的文件名,其后所跟参数需用空格分隔,并为对命令的进一步补充,也即是传递给main()函数的参数。

命令行与main()函数的参数存在如下的关系:

设命令行为:program str1 str2 str3 str4 str5

其中program为文件名,也就是一个由program.c经编译、链接后生成的可执行文件program.exe,其后各跟5个参数。对main()函数来说,它的参数argc记录了命令行中命令与参数的个数,共6个,指针数组的大小由参数argc的值决定,即为char*argv。

数组的各指针分别指向一个字符串。应当引起注意的是接收到的指针数组的各指针是从命令行的开始接收的,首先接收到的是命令,其后才是参数。

参考资料来源:百度百科--C++

参考资料来源:百度百科--main函数



应该是编译器的问题
请将void main()-->int main(void){
...
...

return 0;
}

'main' must return 'int'
就字面意思,main函数必须返回int类型数值。

可以在main函数最后面加上
return 0;

C语言问题 error: `main' must return `int'~

错误提示的意思是,main函数必须返回int类型。这个要求是C99提出的,所以采用C99及以后标准的编译器,都会强制要求main函数返回int类型。即这样:
int main(){ ... return 0;} 而现在很多书都不注意规范,用着老编译器,这种事情毫不在意,写成main()和
void main()的屡见不鲜,这个需要个人注意,严格按照标准来。

这句话是说 main函数必须返回int 在用DEVC++或者codeblocks 严格按照C99标准检查的,就可能会有这个错误。解决起来也很简单 。
把你的void main 改成 int main 就行了,然后在最后main函数的return 改成return 0;
int main()
{

return 0;
}