在C语言中,主函数是不是必须要有返回值?

 我来答
仁昌爱娱乐
高粉答主

2020-01-05 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459857

向TA提问 私信TA
展开全部

在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。g++3.2、dev C等环境中如果main函数的返回值不是int类型,根本无法通过编译。而gcc3.2则会发出警告。

share_fun1
推荐于2017-11-26 · TA获得超过610个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:367万
展开全部
按标准来说,C的main函数是需要有返回值的。标准中main函数返回类型是int的,所以需要一个返回值
但是由于历史原因,很多地方可以看到没有返回值的main。比如直接main()或者说void main() 但是这样一般编译器也不会认为错误
不过建议还是写标准的C的main函数。最好有一个返回值。0表示正常退出

打字不易 谢谢采纳
更多追问追答
追问
当写成main或void main ()这样,一般编译器也会自己加上去返回值?
追答
void main的话是直接认为是无返回值的,不会
直接main的话会认为是很老的代码。在很老的代码中,没有标明类型的话会认为是int类型的。

而且 如果是有返回值的main但是忘记return了 一些编译器会产生警告但是也不报错。有些编译器会把最后一句执行的语句作为返回值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新疆丨精神
2013-12-29
知道答主
回答量:16
采纳率:0%
帮助的人:4.3万
展开全部
不是所有的都需要返还值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式