开发者社区> 问答> 正文

一段代码,这里为什么用exit(1)而不是return 1?还有如何解读这种避免String = NULL的方式?

学校C语言课的PPT,关于 Command line arguments的,讲的很粗,例题直接看不懂。
直接上图片了,因为有老师的标注,截图比较完整。
我的疑问在于,
1.虚线框内的代码有什么作用,老师说为了避免String = NULL?并不理解。
2.为什么用fprintf并且括号内是stderr?如果没有特殊作用,那我就理解为老师只是为了演示课堂内容了……
3.这里为什么exit()和return混用,各有什么目的?
screenshot

展开
收起
a123456678 2016-03-09 15:59:40 2384 0
1 条回答
写回答
取消 提交回答
  • return与exit的区别是什么?

    exit()是一个函数
    ,结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,在父进程中wait系统调用将接受到此返回信息。

    return返回函数值,是关键字

    在main函数中我们通常使用return (0);这样的方式返回一个值。

    但这是限定在非void情况下的也就是void main()这样的形式。

    exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统。

    但在如果把exit用在main内的时候无论main是否定义成void返回的值都是有效的,并且exit不需要考虑类型,exit(1)等价于return (1)

    exit(0); //正常退出
    非0即是非正常退出
    数字0,1,-1会被写入环境变量ERRORLEVEL,其它程序可以由此判断程序结束状态。
    一般0为正常推出,其它数字为异常,其对应的错误可以自己指定。

    2019-07-17 18:56:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多