扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
赫章ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
因此建议你的这个问题还是用C++ 的异常去解决比较好。
子函数只能给主函数一个返回值 或者操作主函数的一个参数(通过指针)
然后主函数通过判断这个返回值或者参数决定是否退出
int fun(int a)
{
if (a0)
return 1;
else
return 0;
}
main()
{
int a;
while (scanf("%d",a))
{
if (fun(a)==0)
{
break;
}
}
}
C/C++中,用return可以从任何子函数中退出返回到主调函数,而exit()是用来退出程序返回操作系统的。至于怕把{}搞混了,那你是不可能回避的,因为{}是C/C++的重要语句成份,而且写C/C++是提倡多用{}的——就是说不要轻易省掉,必要时还可以多加。可见,程序员们的经验是{}不仅不会搞混,而且有助于代码的阅读!
函数都是并列关系,不存在一个嵌套另一个的问题,只能是一个调用另一个,在其中又调用另一个,一层层调用,正常情况都只有一个返回出口,也是一层一层返回,不能跳过。
直接调用就可以了。例如:
hanshu1(){
printf("this is hanshu1");
}
hanshu2(){
printf("this is hanshu2");
hanshu1();
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流