扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如果函数在正常结束后返回主函数,则不用额外添加任何语扮穗句,到函数结束后自动返回主函数;
创新互联,专注为中小企业提供官网建设、营销型网站制作、响应式网站开发、展示型做网站、成都网站建设等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
如果是在函数中间某个分支处需要直接退出函数返回到主函数,则可以添加return;语句行,程序执行到这锋缺码一语句后,就会立即返回到主函数。当然也可以通银哪过让分支跳转到函数末尾的地方来返回主函数。
直接跳回一岩悉扒个地方 C用setjmp, longjmp C++则用try catch throw的异常处理机制 return则返回调用的函数举一个C++的例粗昌陆汪子,函数从funcB直接返回了主函数main: int funcA() { int a; funcB(); //之后的语句都不会执行 a = 1; a *= 2; return a; } void funcB() { throw int(0); } int main() { int r = 0; try { r = funcA(); } catch (...) { // 该程序直接跳到这里 // r仍然等于0 } return 0; }
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。掘运虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特茄物殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊判纳梁值和函数正常的返回的取值不会冲突,不会引起二义性。
因此建议你的这个问题还是用C++ 的异常去解决比较好。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流