C语言如何提前退出所调用的子函数?
#include<stdio.h>#include<conio.h>#include<stdlib.h>voidtest(intk){if(k>10)exit(0);/*...
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void test(int k)
{if ( k>10)
exit(0);
/*这里还有其他处理程序,本意是想判断i如果大于10就不处理余下的代码*/
}
void main(void)
{int i;
clrscr();
printf("\n");
for(i=0;i<5;i++)
printf("%d ",i);
test(12);
i++;
printf("%d ",i);
}
原本希望输出:0 1 2 3 4 5
但是只输出0,1,2,3,4,还有5未输出.
如果希望子函数不影响主函数后面的代码执行,该如何写代码.
主要想自动exit(0)函数的用法
不想把子函数写成:
void test(int k)
{if (k<=10) {代码.... }
else { 代码... }
}
这样是可以,但是如果子函数代码多了的话,很容易把{}搞混淆.
希望能详细讲解.
谢谢! 展开
#include<conio.h>
#include<stdlib.h>
void test(int k)
{if ( k>10)
exit(0);
/*这里还有其他处理程序,本意是想判断i如果大于10就不处理余下的代码*/
}
void main(void)
{int i;
clrscr();
printf("\n");
for(i=0;i<5;i++)
printf("%d ",i);
test(12);
i++;
printf("%d ",i);
}
原本希望输出:0 1 2 3 4 5
但是只输出0,1,2,3,4,还有5未输出.
如果希望子函数不影响主函数后面的代码执行,该如何写代码.
主要想自动exit(0)函数的用法
不想把子函数写成:
void test(int k)
{if (k<=10) {代码.... }
else { 代码... }
}
这样是可以,但是如果子函数代码多了的话,很容易把{}搞混淆.
希望能详细讲解.
谢谢! 展开
7个回答
展开全部
用return可以从任何子函数中退出返回到主调函数,而exit()是用来退出程序返回操作系统的。至于怕把{}搞混了,那你是不可能回避的,因为{}是C/C++的重要语句成份,而且写C/C++是提倡多用{}的——就是说不要轻易省掉,必要时还可以多加。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用return 啊
void test(int k)
{if ( k>10)
return; //exit(0);
/*这里还有其他处理程序,本意是想判断i如果大于10就不处理余下的代码*/
}
void test(int k)
{if ( k>10)
return; //exit(0);
/*这里还有其他处理程序,本意是想判断i如果大于10就不处理余下的代码*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-16
展开全部
如果是想退出一个函数就用return,退出应用程序用exit()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就用return;这样就好了
关于{}容易搞混淆,你可以通过不同的缩进来对齐对应的{}
关于{}容易搞混淆,你可以通过不同的缩进来对齐对应的{}
追问
谢谢babybluein及时回答.
在其他高级语言里如delphi是可以用exit(),退出当前调用的子函数的,而且不影响调用函数的其他代码执行.
C里面给的EXIT(0)到底有何用,依此看来不是毫无用处了?,按理谁也不会想要把MAIN()函数退出啊
而且test函数是void型,这里里不需要返回值的
追答
http://www.cplusplus.com/reference/cstdlib/exit/
exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);可读性比较好一点。
使用exit()时,可以不论main()的返回值类型。
一般如果用return的话,会尝试自己去接住返回值并给处理掉,exit应该是符合默认的处理方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询