打印错误输出流的时候,我测试在后面不加return 1也可以有效
这是为什么?不需要return 1也可以?
这是为什么?不需要return 1也可以?
2016-04-11
在前面的课程中老师讲过了,在执行C语言程序时,如果前一个步骤执行错误,就不会往下执行,如何判断前一个程序是否出错,是看执行它以后返回值是否为0,如果为0,继续执行,如果不为0,则程序就不继续执行了。
所以,在编程时,我们要想到,当程序没有得到我们想要的东西时,我们需要不继续执行程序,所以应返回一个非0的错误码,
如果,像你提问的那样,不加return 1,则即使程序判断出错误了,也没有相应措施,它的判断是没意义的,
例如:本节讲的这段语句中if外面再加一条语句,printf("你输入的是%d\n",a);
如果if判断我们输入的是<0,但会因为没有return 1;而继续执行,输出结果中除了if语句内的输出,还有if外的输出;
如果我们在if判断语句中加了return 0;注意,是return 0; 虽然当if判断出输入的是<0,也跳出程序了,也提示了,但是程序执行这段语句后的返回值是0,如果这段程序后面还有程序,因为前一个程序的返回值为0,所以它会继续执行的。所以,if虽然判断了,提示了,但没有停止程序执行。
所以,我认为,return 一个非0整数 ,不仅有提示作用,还有使程序停止运行的作用。
举报