替代g编程中的goto

时间:2014-02-08 12:32:17

标签: c goto

c编程中是否有goto语句的替代方法。

实际上我打算为我的应用程序制作一个新的模拟器。对于这个模拟器,我需要在其他功能的主要内部一次又一次地去特定的地方。 Goto仅适用于功能,否则无效。任何人都可以建议我任何其他替代方法。

先谢谢了。

4 个答案:

答案 0 :(得分:6)

main分隔为多个功能。而不是跳转到main内的位置,执行适当的功能。这可能需要将一些参数传递给函数,但它确实值得。

答案 1 :(得分:4)

您可以使用自己的功能,并在需要时随时调用。

答案 2 :(得分:0)

在函数内放置“你需要去的地方”并在每次需要时调用该函数。

当然,该函数将拥有自己的作用域,无法从调用点访问变量。

因此,您需要将所需数据传递给函数或使用(不鼓励)全局变量

答案 3 :(得分:0)

  

对于这个模拟器,我需要在主要的其他功能中一次又一次地去特定的地方。

这可以很快导致意大利面条代码。在函数中goto转发,例如转换为清理代码,这是合理使用的。在功能之间跳跃:不要这样做,这太可怕了(技术上可以通过一些我不打算在这里命名的助手来完成,以保持你的诱惑)。

所以你尝试做的事听起来很像我所说的 coroutines 。这可以通过使用一些名为“ Duff的设备”的构造来完成。这里有一篇很好的文章:http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html

然后在Google Code上有一个C coroutine库:https://code.google.com/p/libconcurrency/