C 中使用 goto 会被打吗?

2018 年 11 月 28 日
 codechaser

突发奇想,C 中的 goto 和我以前学的单片机里的汇编跳转好像,感觉很强大啊。假如大型项目里使用 goto 会被打吗?

12385 次点击
所在节点    C
102 条回复
linxu
2018 年 11 月 28 日
据说 goto 在 linux 内核中,也用到了。。。
codechaser
2018 年 11 月 28 日
@liuxu 请教一下这样在线怎么在一个仓库里搜索关键字啊?我在 github 里输`goto repo:torvalds/linux`搜不到你这些
r6Vm94FFk9u3W6XI
2018 年 11 月 28 日
只要逻辑清晰,我觉得没什么不能用的
读 redis 源码的时候,里面也有用到 goto
iceheart
2018 年 11 月 28 日
等你维护别人的代码的时候你就不觉得 goto 好了。
gamexg
2018 年 11 月 28 日
@scnace #13 标准库里面见过不少 goto exit。多层循环我一般是 break label 跳出
easylee
2018 年 11 月 28 日
IDE 中使用 goto 的话,日后维护代码并无问题。

如果单纯用 vim 或者记事本,那就另当别论。
justou
2018 年 11 月 28 日
见得最多的 goto 用法还是异常处理跟资源释放
yuriko
2018 年 11 月 28 日
事实上是,如果问这个问题的人,一般建议是不要用,因为理解不够瞎用容易死
如果对 goto 的使用场景有了充分理解了,自然就不会再纠结这个问题
Halry
2018 年 11 月 28 日
我之前也像别人说的不用 goto
结果 goto 真的好好用啊哈哈哈
JamesR
2018 年 11 月 28 日
我认为跳转处离得近可以用 goto,其他就别用了。
MrStark
2018 年 11 月 28 日
当年我就是用 goto 而惨被同事捅死的 [滑稽]
chiu
2018 年 11 月 28 日
小型使用不会
nealwx
2018 年 11 月 28 日
我一开始是抱着 goto 不要的想法的,后来发现 goto 用了之后反而少了很多冗余的代码
orangeade
2018 年 11 月 28 日
cpython 里也有 goto, 这得看项目类型和团队规范了
ecee
2018 年 11 月 28 日
c 还好吧,同事 c# 用 goto 怎么办∼_∼
rebackhua
2018 年 11 月 28 日
goto 很好用,出错处理,多重循环之类的
BBge
2018 年 11 月 28 日
看到 goto 就想起给一个加拿大老师当 C++助教的时候 有一个学生问老师能不能用 goto 老师一脸鄙夷的表情
ghhardy
2018 年 11 月 28 日
Kelly 不是说了么,有时在深层嵌套的循环中测试查找一个值,一旦找到则跳出循环的时候,用 goto 能提高效率。但他同时也建议,一般尽量不要用。
Doodlister
2018 年 11 月 28 日
尽可能少用前向 GO TO
避免使用后向 GO TO
Android2MCU
2018 年 11 月 28 日
Android 系统源码里面也一堆 goto 呢,够大型嘛( ̄▽ ̄)


不过确实基本上都是出错处理之类的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/512453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX