啊哈磊_编程从这里起步

标题: 为什么一定要加return 0 [打印本页]

作者: xingyun    时间: 2013-12-22 12:51
标题: 为什么一定要加return 0
每个程序都要加return吗?不加行不行!#include <stdio.h>#include <stdlib.h>
int main()
{
       
        system("pause");
        return 0;
}




作者: rosynirvana    时间: 2013-12-22 12:51
return 0的意义是:告诉操作系统程序正常退出
不加可以,但是编译器会给出警告(-Werror下无法编译)
而且如果其他程序通过这个值判断程序运行状态,就很可能造成误判
作者: 梦中的婚礼    时间: 2013-12-22 13:15
如果功能函数需要返回值就要用到这个,否则可以删掉。一般情况下,void可以不用,其他的,必须要用到return.
作者: rosynirvana    时间: 2013-12-22 13:23
梦中的婚礼 发表于 2013-12-22 13:15
如果功能函数需要返回值就要用到这个,否则可以删掉。一般情况下,void可以不用,其他的,必须要用到return ...

功能函数是指?
作者: 4399APPLE    时间: 2013-12-22 14:24
rosynirvana 发表于 2013-12-22 13:23
功能函数是指?

沙发提到了void main
作者: 4399APPLE    时间: 2013-12-22 14:24
rosynirvana 发表于 2013-12-22 13:21
return 0的意义是:告诉操作系统程序正常退出
不加可以,但是编译器会给出警告(-Werror下无法编译)
而 ...

我说,你的操作系统是Linux?
作者: 4399APPLE    时间: 2013-12-22 14:29
return 0是指返回0,在正常的函数里一般要有,如果是空类型就直接写
return就行了。0指的是正常退出,不过,你可以换成……
  1. exit(0);
复制代码

注意:在main函数里两条语句的意思是相等的,但是在自己的函数里
如果是return,那么就会到发出调用函数的“那个”函数里面去
如果return出现在main函数里,那么结束整个程序
但是如果是exit,那指的是“无论是在什么函数里,立即结束”
exit(0)指的是正常退出,其他为非正常
作者: rosynirvana    时间: 2013-12-22 14:48
4399APPLE 发表于 2013-12-22 14:24
我说,你的操作系统是Linux?

我身边不止一台设备,有些是unix家族的操作系统,但是手边这台现在运行着Windows

但是这和我的回复没关系的样子
作者: 4399APPLE    时间: 2013-12-22 14:50
rosynirvana 发表于 2013-12-22 14:48
我身边不止一台设备,有些是unix家族的操作系统,但是手边这台现在运行着Windows

但是这和我的回复没 ...

额,那是多少
确切
作者: 超神级    时间: 2013-12-22 17:51
梦中的婚礼 发表于 2013-12-22 13:15
如果功能函数需要返回值就要用到这个,否则可以删掉。一般情况下,void可以不用,其他的,必须要用到return ...

你肯定没有只用入口写过程序
作者: rosynirvana    时间: 2013-12-22 17:54
超神级 发表于 2013-12-22 17:51
你肯定没有只用入口写过程序

入口又是什么? interface(接口) ?
作者: 4399APPLE    时间: 2013-12-22 18:09
超神级 发表于 2013-12-22 17:51
你肯定没有只用入口写过程序


FreeConsole()
作者: 超神级    时间: 2013-12-22 18:13
rosynirvana 发表于 2013-12-22 17:54
入口又是什么? interface(接口) ?

不是

  1. main()、、//
  2. {

  3. }
复制代码
是这个
作者: 傻瓜孩子    时间: 2013-12-26 20:08
旧的标准可以使用void main,void可以不返回值。
新的标准规定main 的类型为int,既然函数有返回值类型,就要返回值。所以就有了return 0;
至于0是返回值规定。

作者: rosynirvana    时间: 2013-12-26 22:31
傻瓜孩子 发表于 2013-12-26 20:08
旧的标准可以使用void main,void可以不返回值。
新的标准规定main 的类型为int,既然函数有返回值类型,就 ...

从最早的标准(ANSI C, 1989)开始就规定int main
但是同时规定返回值为int可以不写
从来没有规定可以写void main

返回值为0表示正常退出也不是规定,只是UNIX习惯




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2