多层嵌套调用函数如何退出到最外层

iceman19860106 2008-10-28 01:41:09
请问在多层嵌套调用函数如何退出到最外层
比如在最内层接收用户按键输入,如果输入ESC则返回最外层函数,
我想了一种办法是直接调用最外层函数,并把这个函数放在死循环内.
但是这样感觉程序在实际的运行中可能会多次压栈而浪费内存空间!!
请问各位大虾有没有其他办法?不要用goto,因为我的每个函数是一个.c
文件,是goto不到的。
...全文
659 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
macfan 2008-10-28
  • 打赏
  • 举报
回复
设置bool变量跳转跳转判断,goto应该避免使用。
iceman19860106 2008-10-28
  • 打赏
  • 举报
回复
请问使用longjmp是不是不会对当前函数环境信息进行压栈啊?
iceman19860106 2008-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nick_shen 的回复:]
Windows下也可以用setjmp,longjmp,这两个是标准C函数。不过我想goto也可以的,只要是同一进程的函数。
引用 2 楼 iceman19860106 的回复:
引用 1 楼 xhs_lh04 的回复:
LINUX下就用setjmp,longjmp

是在WINDOWS下的VC6.0用C语言开发的

[/Quote]
goto它所能识别的标号不是只能在同一个翻译单元内吗?其他翻译单元的标号它应该是识别不了的啊!!
nickshen_qidian 2008-10-28
  • 打赏
  • 举报
回复
Windows下也可以用setjmp,longjmp,这两个是标准C函数。不过我想goto也可以的,只要是同一进程的函数。
[Quote=引用 2 楼 iceman19860106 的回复:]
引用 1 楼 xhs_lh04 的回复:
LINUX下就用setjmp,longjmp

是在WINDOWS下的VC6.0用C语言开发的
[/Quote]
wang0635 2008-10-28
  • 打赏
  • 举报
回复
应该也有setjmp之类的吧
TC中是有的
sc_valentine21 2008-10-28
  • 打赏
  • 举报
回复
你那种情况恐怕只能直接调函数了
iceman19860106 2008-10-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xhs_lh04 的回复:]
LINUX下就用setjmp,longjmp
[/Quote]
是在WINDOWS下的VC6.0用C语言开发的
xhs_lh04 2008-10-28
  • 打赏
  • 举报
回复
LINUX下就用setjmp,longjmp

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧