学校C语言课的PPT,关于 Command line arguments的,讲的很粗,例题直接看不懂。
直接上图片了,因为有老师的标注,截图比较完整。
我的疑问在于,
1.虚线框内的代码有什么作用,老师说为了避免String = NULL?并不理解。
2.为什么用fprintf并且括号内是stderr?如果没有特殊作用,那我就理解为老师只是为了演示课堂内容了……
3.这里为什么exit()和return混用,各有什么目的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
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为正常推出,其它数字为异常,其对应的错误可以自己指定。