1,为什么main的返回值类型是int而非double呢返回值是给系统标志程序运行状态用的 , 状态再多整数也够用了,而且整数比float/double好处理,占内存也少在现行的c99标准中 , main函数的返回值只能是int,而且,当main函数return后程序就结束了,你返回个double值也没用 。
2,遇到main must return int 怎么解决这句话是说 main函数必须返回int在用DEVC++或者codeblocks 严格按照C99标准检查的,就可能会有这个错误 。解决起来也很简单。把你的void main改成 int main 就行了,然后在最后main函数的return 改成return 0;int main()return 0;}应该在主函数末尾加上return 0;这个错误是因为在声明主函数时写了int main() ...;}而没有返回值 。正确的写法应为:int main() ...; return 0;}需注意的是 , 1. return为有返回值的函数的终点,函数内return后的语句一概不执行,所以要加在末尾 。2. 对于main这种一般不需要返回值的函数(即使有也一般不接收),return的值并不重要,但类型很重要 , 如:int main搭配return 1.0是非法的 。这样解决main() 。。。。。。。。}修改为int main() 。。。。。。。。return 0;}//就可以了,在程序的最后加上return 0;还头一次看到这样的错误提示你main函数return的不是int类型的?
3,main must return int楼上的都是用编译器说事儿,其实不是编译器的问题,是标准的问题,标准有多种 , 基本的国际标准有两种,每种也有不同的时期的版本,一般以最近期版本为准,编译器只是实现标准而已,编译器有很多,有的只遵循一种,有的兼容多种标准,一般都还扩展一些标准,对于这个main的返回值 , 不同的标准定义不同,编译器的处理也是多种多样,不要去深究,没有意义,或者说对于不是独孤求败的人没有必要去弄这个 , 那种可行用哪种就好,遵循你编译器来 。C有两个规范 ANSI C main()// return 0; 可选 } int main()return 0; } void main() } ============== ISO C int main()return 0; } void main() } =============== 至于C++的int main(),那是C++的ISO规范,C++也只有ISO规范。总体一般都是写int main(),原则上不会遇到任何问题 。不同的编译器对语法要求的严格程度会有不同 。你朋友的电脑用的编译系统跟你的一定不同 。你的代码在VC下运行是没问题的,但你的编译器要求main函数必须是int型的,所以必须返回int类型值 。主函数有返回值是一种良好的习惯 , 不推荐用void型 。如果你实在喜欢用void,那么就换编译器吧 。我不知道为什么你的会不行 , 但我需要告诉你不是void main不需要返回值,而是main函数均需要返回值,只是系统默认返回1而已!这不是你代码的问题,而是编译器的问题c语言的 标准允许main函数为void类型而按照c++的标准 main 必须是int类型但很多ide或编译器不一定准守c++标准,比如vs可能你用的是 devc++,这个严格的遵守c++的标准所以推荐c++按楼上那样的写,不会出错也符合标准你在c-free建立的是C++工程, 默认用的g++编译器, C++的main必须返回int, 你把main前的void去掉后, 函数的返回类型就默认为int当然像vc那种的编译器只能算C/C++混合的编译器,对C++有些细节有出入【main函数必须返回int,为什么main的返回值类型是int而非double呢】
- 分析家c语言接口
- mongodb442安装教程 mongodb安装必须要root权限
- iostream常用函数,includeclass Apublic Aint iint ja1i a2jvirtual
- mysqli获取所有数据 mysql的提取函数
- oracle分析函数做预测
- mongodb show tables mongodb必须全表扫描吗
- 函数型数据分析代码,数据分析excel常用的函数
- mysql 分组函数 mysql分组取数据
- mysql统计函数
- mysql有rank函数吗 mysql有rank
