在C语言中,主函数是不是必须要有返回值?
3个回答
展开全部
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。g++3.2、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出警告。
展开全部
按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值
但是由于历史原因,很多地方可以看到没有返回值的main。比如直接main()或者说void main() 但是这样一般编译器也不会认为错误
不过建议还是写标准的C的main函数。最好有一个返回值。0表示正常退出
打字不易 谢谢采纳
但是由于历史原因,很多地方可以看到没有返回值的main。比如直接main()或者说void main() 但是这样一般编译器也不会认为错误
不过建议还是写标准的C的main函数。最好有一个返回值。0表示正常退出
打字不易 谢谢采纳
更多追问追答
追问
当写成main或void main ()这样,一般编译器也会自己加上去返回值?
追答
void main的话是直接认为是无返回值的,不会
直接main的话会认为是很老的代码。在很老的代码中,没有标明类型的话会认为是int类型的。
而且 如果是有返回值的main但是忘记return了 一些编译器会产生警告但是也不报错。有些编译器会把最后一句执行的语句作为返回值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询