本文介绍了在支持循环和函数的语言中,&goto";是否有任何合法的使用案例?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直觉得,如果可能的话,永远不要使用goto
。
然而,前几天在仔细阅读libavcodec(它是用C语言编写的)时,我惊讶地注意到它被多次使用。
在支持循环和函数的语言中使用goto
是否有利?若有,原因为何?请提供一个具体的例子,清楚地证明使用goto
是合理的。
推荐答案
我知道使用"goto"语句有几个原因(有些人已经谈过了):
干净退出函数
通常在函数中,您可能会分配资源并需要在多个位置退出。程序员可以通过将资源清理代码放在函数的末尾来简化他们的代码,并且函数的所有"出口点"都将转到清理标签。这样,您就不必在函数的每个"出口点"编写清理代码。
退出嵌套循环
如果您处于嵌套循环中,并且需要中断所有循环,则GOTO可以使这一点比Break语句和IF-Checks更干净、更简单。
低级别性能改进
这只在性能关键型代码中有效,但是goto语句执行得非常快,在遍历函数时可以给您带来提振。然而,这是一把双刃剑,因为编译器通常无法优化包含GOTO的代码。
请注意,在所有这些示例中,GoTO都限制在单个函数的范围内。
这篇关于在支持循环和函数的语言中,&goto";是否有任何合法的使用案例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!