C语言问题,int main()和int main(void)差别是?
的有关信息介绍如下:voidmain和intmain条四胜顾渐苦的区别就是有无返回值。
在intmain可以出现非int类型的东西。在写代码时,一个函数要么有返十信似或罪市留期玉运回值,要么没有返回值没有返回值就用void来表示。main函数同样的,在没有返回值时加个void。有的编译器必须main要有返回值int,那就写成intmain。
至于什么时候需要哪种写法,不必有这种顾虑,你可以一律都写成intmain,然后在方法倍述指夜已节参坚章计体中最后加个return0;就行了。
voidmain和intmain在作用上其实没什么区别啊,只是有的严谨的编译器必须要main有int返回值而已,这两种写法跟自定义的函数没任何关系。
扩展资料:
main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)C/C++中从来没有定义过voidmain()。
C++之父BjarneStroustrup在他的主斯数点鲜沙评明页上的FAQ中明确地写着Thedefinitionvoidmain(){/*...*/}isnotandneverhasbeenC++,norh来自asitevenbeenC.(voidmain()从来就不存在于C360问答++或者C)。
在C和C++中,不接收任何参数也不返回任何信息的函数原型为“voidfoo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成voidmain(void)或概立谓露者是voidmain(缩)。
然而这是错误的!main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的。虽然在一些编译器中,很voidmain可以通过编译(如vc6),但并非所有编译器都支持委哪坏尼voidmain,因为标准中从来没有定义过voidmain。
g++3.2、devC++等环境中如果main函数沙做务味副看亮青冲块的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出侵即美京该值官各警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用intmain。
参考资料:main函数_百度百科