专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

return0有什么用,C语言的main函数里return0的作用

来源:小易整编  作者:小易  发布时间:2023-03-16 05:14
摘要:return0有什么用,C语言的main函数里return0的作用初学者学习C语言时,最熟悉的莫过于printf(“helloworld”)了,初学者们肯定都看过并写过如下代码(IDE是windows系统的devcpp):编译后运行结果如下...

return0有什么用,C语言的main函数里return0的作用

初学者学习C语言时,最熟悉的莫过于printf(“hello world”)了,初学者们肯定都看过并写过如下代码(IDE是windows系统的devcpp):

return0有什么用,C语言的main函数里return0的作用

编译后运行结果如下:

return0有什么用,C语言的main函数里return0的作用

很多老师都会和初学者说,C语言main函数的格式就是这样:

int main()

{

.......;

return 0;

}

只需要照着模板套上去即可。但是,却有很少老师会详细地解释return 0有什么用。

我当初学习C语言时,问过老师return 0的具体用途,老师只回答“return 0是退出主函数必须的”,然后就没了,弄得我一头雾水。

经过后期的学习和实践,我终于弄懂了return 0的作用。

C语言中,学习到函数的章节的小伙伴就知道,函数是可以有返回值的,可以通过return将该函数结果返回并赋值给另一个变量,以存储起来留作后续使用。比如,取最大值函数:

return0有什么用,C语言的main函数里return0的作用

当程序运行到Max=max(num1,num2)时,num1和num2的值会传入max函数的形参a,b。return result的作用是将result这个变量的值存放到一个“临时区域”,而“Max=”就是从这个“临时区域”中获取result的值。

return0有什么用,C语言的main函数里return0的作用

当然,这个“临时区域”不是真正意义上的“临时的区域”,而是寄存器,这涉及到底层汇编的知识,这里不细讲。

同样道理,main函数,本质也是函数。和普通函数一样,main函数也有返回值。而return 0,就是将main函数的结果0返回。但main函数又比较特殊,它的返回值,由“操作系统”来获取。

这时肯定会有人疑惑:普通函数的返回值可以通过赋值运算符“=”获取。那main函数的返回值如何获取呢?

既然main函数的返回值返回给操作系统,自然要从操作系统中获取获取mian函数的返回值。

对于操作系统来说,一个可执行文件相当于一个进程,操作系统会管理进程的资源,自然包括进程的返回值。所以,main函数的返回值要从进程中获取,获取进程的返回值,就是获取main函数的返回值。在windows系统下,通过CreateProcess函数创建运行进程并通过GetExitCodeProcess函数获取进程的返回值;在linux系统下,通过system函数创建运行进程并通过WEXITSTATUS获取进程的返回值。

以windows系统为例:

程序功能:除法运算,当除数为0时输出错误log,除数不为0时输出商和正确log。

IDE:windows dev-cpp

程序1:p.c

return0有什么用,C语言的main函数里return0的作用

可以看到,main函数有两个返回值:当除数不为0时,return 1;除数为0时,return -33。并不是习惯上的return 0;

编译连接生成可执行文件“p.exe”。

程序2:get_exitcode.c

return0有什么用,C语言的main函数里return0的作用

通过CreateProcess创建进程来运行p.exe,然后通过GetExitCodeProcess获取p.exe的值,即p.c中main函数的返回值。

编译连接生成可执行文件get_exitcode.exe之后,运行get_exitcode.exe,可得到如下结果:

return0有什么用,C语言的main函数里return0的作用

在p.c中,被除数是3,除数是1,除数不为0,输出“run p.exe successfully!!”,商是3,返回值为1,和main函数设定的返回值一样。

若将p.c中的除数改成0:

return0有什么用,C语言的main函数里return0的作用

重新编译连接生成可执行文件后,运行get_exitcode.exe得到如下结果:

return0有什么用,C语言的main函数里return0的作用

在p.c中,被除数是3,除数是0,输出“run p.exe wrong!!”,返回值为-33,和main函数设定的返回值一样。

可见,main函数返回值不一定就是0,是可以根据实际情况而定的。对于初学者来说,通常就一个程序一个main函数从头跑到尾,不考虑其他进程的调用情况,因此在main函数末尾直接return 0即可。当涉及到进程间的调用时,就要合理设置main函数的返回值,以便判断进程是否正常运行。


本文地址:百科问答频道 https://www.neebe.cn/wenda/929210.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • Excel中countif函数的使用方法

    Excel中countif函数的使用方法

    Excel中有很多函数,很多都可以为我们大大减少计算的时间,一步就得出结果,很多朋友在使用countif函数时,会出现一些错误导致不成功,我们这就来给你详细讲讲countif函数是应该如何使用的。countif函数的含义...

  • SUBTOTAL函数怎么用?

    SUBTOTAL函数怎么用?

    操作方法01隐藏行汇总方法:在目标单元格输入公式:=SUBTOTAL(109,C3:C9)。02筛选汇总。方法:在目标单元格输入公式:=SUBTOTAL...

  • 函数库是什么意思?

    函数库是什么意思?

    函数库是指由一组编写好的、结构化的可执行函数组成的库文件,其中的函数可以增加程序的通用功能以提升程序的运行效率,节省开发时间并提高软件的质量。函数库更常用于缩短编程时间、提供程序实现通用功能以及用于程序编写中特定功能的实现。函数库有帮助程...

  • 用数学画图软件——Graph绘制函数图形

    用数学画图软件——Graph绘制函数图形

    Graph是一款开源类的绘制函数图像软件。它不仅能根据函数绘制其图像,还能够绘制曲线上的切线、法线和阴影等。除了绘制功能,它还具有计算功能,其中包括曲线长度、面积等的计算。下面我来给大家介绍一下如何使用Graph绘制函数图像。操作方法...

  • C语言while语句的用法

    C语言while语句的用法

    while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体。#includeintmain(void){inti,sum=0;i=1;while(i...

  • Excel SLOPE函数的使用方法

    Excel SLOPE函数的使用方法

    在数学中SLOPE是斜率的意思,Excel中的SLOPE函数也是一个计算斜率的函数。请诸位和我一起学习——SLOPE函数。操作方法01SLOPE函数的功能把已知的自变量和因变量作为数据点,计算线性回...

  • Excel之MODE函数使用方法

    Excel之MODE函数使用方法

    MODE返回的数组或数据区域中出现频率最高或重复出现次数最多的值。此函数已被替换MODE.MULT函数和MODE.SNGL函数。操作方法01打开Excel,将测试使用的数据复制到表格中,如下图。...

  • 数学画图软件函数哪个好用 函数生成图像软件推荐

    数学画图软件函数哪个好用 函数生成图像软件推荐

    对于科技发达的互联网时代,很多学生是可以借用软件的方式来帮助自己快速的完成作业,接下来就简单的给大家分享下数学画图软件函数哪个好用,这次的合集里边会有几款非常经典的佳作分享给大家,通过时间的证明足以看到它们的优越性,感兴趣的话可以跟小编自己...

  • 周排行
  • 月排行
  • 年排行

精彩推荐