c编程中是否有goto语句的替代方法。
实际上我打算为我的应用程序制作一个新的模拟器。对于这个模拟器,我需要在其他功能的主要内部一次又一次地去特定的地方。 Goto仅适用于功能,否则无效。任何人都可以建议我任何其他替代方法。
先谢谢了。
答案 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/