为了账号安全,请及时绑定邮箱和手机立即绑定

使用后藤有什么问题?

使用后藤有什么问题?

C++
慕尼黑的夜晚无繁华 2019-07-11 10:20:13
使用后藤有什么问题?我正在浏览xkcd,看到了这个(如果几年前还读过一些关于它们的负面文本的话):它到底有什么问题?那么,为什么Goto在C+中是可能的呢?我为什么要不用它们?
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

在1968年,迪克斯特拉(Edsger Dijkstra)给编辑写了一封著名的信ACM的来文 Goto被认为是有害的在其中,他提出了结构化编程的案例。同时循环如果.那么.条件词。当使用goto替代这些控制结构时,结果往往是意大利面码..几乎每天使用的每一种编程语言都是一种结构化的编程语言,而Gotos的使用几乎已经被淘汰了。实际上,Java、Scala、Ruby和Python没有goto指挥。

C、C+和Perl仍然有一个goto命令,在某些情况下(特别是在C中),后藤是有用的例如,退出多个循环的中断语句,或者将清理代码集中在函数中的单个位置,即使有多种方式终止该函数(例如,在函数执行过程中的多个点返回错误代码)。但是一般来说,它的使用应该被限制在特定的设计模式上,这些模式需要以一种控制和认可的方式来实现。

(在C+中,最好使用Raii或护卫 (更多)而不是使用Goto进行清理。但后藤是Linux内核中常用的成语 (另一个来源),这是习语C代码的一个很好的例子。)

XKCD漫画是一个问题的笑话,“当有特定的设计模式时,它的使用是否总是被认为是有害的?”


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 328 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信