[技术问答] 函数通过命令实现跳转哪种方式比较好?

[复制链接]
587|10
 楼主| xixi2017 发表于 2023-2-22 15:41 | 显示全部楼层 |阅读模式
在C语言中,可以使用goto或者if..else语句来实现整个函数的跳转。
  1. int foo( int arg ) {
  2.   int result;
  3.   if ( arg == 0 ) {
  4.     goto END;
  5.   }
  6.   // do something with arg
  7.   result = arg * 2;
  8. END:
  9.   return result;
  10. }
  1. // program label
  2. good_night:
  3. printf("Good night!\n");

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

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


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
AdaMaYun 发表于 2023-2-24 13:50 | 显示全部楼层
小夏天的大西瓜 发表于 2023-2-23 15:17
goto在C语言中不太主张吧,一旦多了逻辑就乱了

这个存在及合理,不乱用没啥事,感觉更任性的是setjump函数
zhuotuzi 发表于 2023-2-25 20:03 | 显示全部楼层
我还没用过goto
OKAKAKO 发表于 2023-2-27 15:56 | 显示全部楼层
同一函数goto
szt1993 发表于 2023-2-28 12:24 | 显示全部楼层
调用深层次的函数用到跳转,不用一层一层的去返回和判断
中国龙芯CDX 发表于 2023-2-28 14:17 | 显示全部楼层
这些跳转方式有什么区别?那个更适合呢?
LOVEEVER 发表于 2023-2-28 14:26 | 显示全部楼层
跳转就是看需求啊,具体是返回还是退出
AloneKaven 发表于 2023-3-1 20:05 | 显示全部楼层
这些方式哪个更好啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

2034

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部