打印
[技术问答]

函数通过命令实现跳转哪种方式比较好?

[复制链接]
399|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xixi2017|  楼主 | 2023-2-22 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在C语言中,可以使用goto或者if..else语句来实现整个函数的跳转。
int foo( int arg ) {
  int result;
  if ( arg == 0 ) {
    goto END;
  }
  // do something with arg
  result = arg * 2;
END:
  return result;
}
// program label
good_night:
printf("Good night!\n");

// goto statement
goto good_night;
还可以使用break 和 continue 语句来条件跳转:
for (i = 0; i < 10; i++) {
  if (i == 5)
    break;
  printf("%d is not 5\n", i);
}

for (i = 0; i < 10; i++) {
  if (i == 5)
    continue;
  printf("%d is not 5\n", i);
}
还有return语句,用来退出当前函数的执行:
int foo() {
  if (condition)
    return 1;
  else
    return 0;
}


使用特权

评论回复
沙发
heisexingqisi| | 2023-2-22 21:42 | 只看该作者
函数跳转有很多方式。goto,if else switch case

使用特权

评论回复
板凳
小夏天的大西瓜| | 2023-2-23 15:17 | 只看该作者
goto在C语言中不太主张吧,一旦多了逻辑就乱了

使用特权

评论回复
地板
小小蚂蚁举千斤| | 2023-2-23 15:40 | 只看该作者
.同一个函数内,可以使用goto语句,不同函数之间的跳转,可以使用 setjmp / longjmp

使用特权

评论回复
5
AdaMaYun| | 2023-2-24 13:50 | 只看该作者
小夏天的大西瓜 发表于 2023-2-23 15:17
goto在C语言中不太主张吧,一旦多了逻辑就乱了

这个存在及合理,不乱用没啥事,感觉更任性的是setjump函数

使用特权

评论回复
6
zhuotuzi| | 2023-2-25 20:03 | 只看该作者
我还没用过goto

使用特权

评论回复
7
OKAKAKO| | 2023-2-27 15:56 | 只看该作者
同一函数goto

使用特权

评论回复
8
szt1993| | 2023-2-28 12:24 | 只看该作者
调用深层次的函数用到跳转,不用一层一层的去返回和判断

使用特权

评论回复
9
中国龙芯CDX| | 2023-2-28 14:17 | 只看该作者
这些跳转方式有什么区别?那个更适合呢?

使用特权

评论回复
10
LOVEEVER| | 2023-2-28 14:26 | 只看该作者
跳转就是看需求啊,具体是返回还是退出

使用特权

评论回复
11
AloneKaven| | 2023-3-1 20:05 | 只看该作者
这些方式哪个更好啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

1780

帖子

1

粉丝