c语言main函数值类型 c语言main函数的参数说明

在C语言中,主函数是不是必须要有返回值?在C语言中 , 主函数必须要有返回值 。
main 函数的返回值类型必须是 int,这样返回值才能传递给程序的激活者(如操作系统) 。如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0;,表示程序正常退出 。
在C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常) 。
扩展资料:
在C和C中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);” 。正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 或void main() 。然而这是错误的 。
main函数的返回值应该定义为int类型,虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main 。g3.2、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译 。而gcc3.2则会发出警告 。
初学编程,C语言中的main函数考虑到main函数的特殊性,lz不明白这个问题可以理解 。
main()是省略c语言main函数值类型了返回值类型 , C语言会默认认为成main的类型为int,在main()的函数体内要返回一个值,如return 0;
而void main()的返回值是void类型,也就是说没有返回值 。这样在main()的函数体内你就不用写return 0;或者return 1;之类的返回语句 。
在一个程序中,可以说你看不出两者的差别 , 因为main()是C语言的入口点,入口点如果返回了程序也就结束了,因此C语言的这个特性似乎没用 。可没用的话,C语言的设计者为什么要这么做呢c语言main函数值类型?!肯定有用 。
没错,前面我说的是在一个程序中 , 它似乎没用 。可如果一个程序prog2调用另一个程序prog1的话(这里指的是prog2直接调用prog1编译好的可执行文件),那么这个特性就有用了 。因为prog2要知道prog1运行之后的状态 。比如你用C写了一个删除文件的程序(暂且命名为delf),然后用另一个程序去调用delf,那么调用结果怎么样?。空飧鑫募欠裆镜袅耍空馐莍nt main()就会派上用场了 。C语言中默认的main如果返回为0,那么这个程序调用就成功了,其他值 , 则为不同的错误代码 。在你的delf程序中,如果那个文件删除成功,那么就在int main()中返回0,其他调用delf的程序就知道,噢,这个操作成功了 。
在unix/linux系统中的很多命令都是通过这种方式获得运行结果的 。
关于谭浩强的书 , 我想不用多说,发行量说明了一切 。毕竟第二版在编写的时候还比较早,而第三版根据很多现在的需要进行了改写,内容当然会好些 。鉴于lz是初学C,其实大可不必在这个问题上浪费太多时间,当你有了更多的项目经验,对这个问题会有更深刻的理解 。
上面我已经给出了main()、int main()和void main()的区别,但建议lz忽略这个差别,认为成二者一样,先把C的其他部分学好 。至于只写成main() , 我并不推荐,就算编译器通过了,这种编程的风格也太不严谨,不利于好的习惯的养成 。
为什么c语言的main函数不能返回void类型?提示main函数c语言main函数值类型的返回值类型必须为int型 。同时要在main函数结束执行前添加诸如return 0c语言main函数值类型 , 之类c语言main函数值类型的语句 。
void main() 是C语言的话这类型是不标准的c语言main函数值类型,改为int main()即可 。
任何时候都可以用int main() , 所以建议不用void main(),用C编译器编译C一般不会有什么问题,因为C是兼容C的 。
总结一下就是,C语言标准允许main函数为void类型 , 按照C的标准中main必须是int类型,如果c语言main函数值类型你的软件不兼容c那么就只能写成int main(),兼容的话你也可以写成void main也是没有错误的,c中,main的格式,void main (){undefined 。
【c语言main函数值类型 c语言main函数的参数说明】关于c语言main函数值类型和c语言main函数的参数说明的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读