c语言怎么从子函数的子函数直接返回主函数

 我来答
mafangsan
推荐于2016-08-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2501万
展开全部
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。

C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。

因此建议你的这个问题还是用C++ 的异常去解决比较好。
hu0904
2013-07-15 · TA获得超过222个赞
知道小有建树答主
回答量:510
采纳率:0%
帮助的人:455万
展开全部
1 汇编清空子函数分配的存储空间,这个不在C范围内了。也可以无视。
2 汇编跳转到主函数地址 ,汇编级的调试跳转过,代码的话很复杂。不考虑安全、存储空间等问题并且最后退出是直接退出而非按步返回,直接调用主函数即可。
函数跳转是编译器的事,你想按自己的方式跳转就要做相应的本该由编译器做的事 。否则不可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樊琦戈华翰
2019-01-02 · TA获得超过3781个赞
知道大有可为答主
回答量:3055
采纳率:29%
帮助的人:182万
展开全部
c++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
c语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cc87ac6
推荐于2017-12-15
知道答主
回答量:24
采纳率:0%
帮助的人:12.6万
展开全部
是要跳出这两个函数还是把值传回去函数继续。
如果跳出两个函数里都return;就行,需要把值传到main里运行main再继续的话,应该把main函数里用到的代码构造成一个函数,然后可以直接传值、构造个全局变量或指针都行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e2dbec6
2013-07-15 · TA获得超过273个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:250万
展开全部
goto可以做这个事情,建议不要用。你可以让子函数执行结束,结束之后自然会回到主函数中
追问
是从子函数的子函数直接回
追答
现在编程方式for,while,if等几乎可以满足所有的编程需求,所以很多人和书都建议不要使用goto。你应该先看看自己的程序设计上是否有问题,return可以结束函数跳回上一级函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式