如何解决在支持循环和函数的语言中是否有“goto”的合法用例?
使用我知道的“goto”语句有几个原因(有些人已经谈过了):
通常在一个函数中,你可能会分配资源并且需要在多个地方退出。程序员可以通过将资源清理代码放在函数末尾来简化他们的代码,并且函数的所有“退出点”都将转到清理标签。这样,您不必在函数的每个“退出点”都编写清理代码。
如果您处于嵌套循环中并且需要跳出 所有 循环,那么 goto 可以使这比 break 语句和 if-checks 更清晰和简单。
这仅在性能关键代码中有效,但 goto 语句执行得非常快,并且可以在通过函数时为您提供动力。然而,这是一把双刃剑,因为编译器通常无法优化包含 goto 的代码。
请注意,在所有这些示例中,goto 仅限于单个函数的范围。
解决方法
长期以来,我一直认为goto
如果可能的话,永远不要使用它。
然而,前几天在仔细阅读 libavcodec(用 C 语言编写)时,我惊讶地发现它有多种用途。
goto
使用支持循环和函数的语言是否有利?如果是这样,为什么?请提供一个明确证明使用goto
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。