goto问题

老鼠期待爱 2012-07-18 05:06:36
C语言中goto 可以使一个函数跳到另一个函数吗?
可以,为什么?
不可以,为什么?
...全文
402 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ies_sweet 2012-08-02
  • 打赏
  • 举报
回复
语言的标准,没有原因

这属于游戏规则问题,哈哈

除非你不用C语言
xxb249 2012-08-01
  • 打赏
  • 举报
回复
必须的不行,两个函数用的是不同的栈空间,而goto只能在本函数栈中才能识别
赵4老师 2012-08-01
  • 打赏
  • 举报
回复
语句1;
语句2;
lable:
功能语句

如果顺序执行,走到了 语句1-->语句2,接下来会继续走到label的定义处,继续执行下面的功能语句。
muyi66 2012-08-01
  • 打赏
  • 举报
回复
很遗憾,你这个需求本身就是错误的。如果设计出这样的模块,你的上司会毙了你。
月光宝盒 2012-08-01
  • 打赏
  • 举报
回复
请问标签如何被执行到,如

语句1;
语句2;
lable:
功能语句

如果顺序执行,走到了 语句1-->语句2,接下来会继续走到label的定义处吗?还是停止了?
换句话说除了goto lable,这种可以跳转到lable,还有其他执行lable的方式吗?
IVERS0N 2012-08-01
  • 打赏
  • 举报
回复
搜下函数的原理
月光宝盒 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

语句1;
语句2;
lable:
功能语句

如果顺序执行,走到了 语句1-->语句2,接下来会继续走到label的定义处,继续执行下面的功能语句。
[/Quote]
怎么我测试的结果好像不走。。。
wangzhaoyang121 2012-07-19
  • 打赏
  • 举报
回复
感觉又回到汇编了,
booirror 2012-07-19
  • 打赏
  • 举报
回复
楼主
不可以啊,goto的label具有函数作用域,即只能在函数内可见。
心死 2012-07-19
  • 打赏
  • 举报
回复
函数间再能跳,乱翻了。
AnYidan 2012-07-19
  • 打赏
  • 举报
回复
label 只在 函数内 有效
W170532934 2012-07-18
  • 打赏
  • 举报
回复
楼主写个程序验证下。要是能乱跳的话,再实验下看能不能从一个程序跳到另外的一个程序。
塞文 2012-07-18
  • 打赏
  • 举报
回复
写个程序验证下不就有答案了?
机智的呆呆 2012-07-18
  • 打赏
  • 举报
回复
goto跳转是木有保存相关的程序上下文的信息,故不能跨函数跳转
百度 setjmp&longjmp 这两个函数可以的
wansbest 2012-07-18
  • 打赏
  • 举报
回复
不行,goto只能在函数内部跳转,标准就是这么实现的。函数与函数之间是长跳转,linux可以用setjmp/longjmp来实现!!windows不熟悉!!
图灵狗 2012-07-18
  • 打赏
  • 举报
回复
还好问的不是用goto从C函数跳到JAVA函数。
RiqueZhang 2012-07-18
  • 打赏
  • 举报
回复
goto只能跳转至同一个函数内部的标签,这是C语言里的标准,原因就去问标准吧
RiqueZhang 2012-07-18
  • 打赏
  • 举报
回复
goto只能跳转至同一个函数内部的标签,这是C语言里的标准,原因就去问标准吧
www_adintr_com 2012-07-18
  • 打赏
  • 举报
回复
不行, 跳了函数堆栈就不平衡了.

69,371

社区成员

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

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