我通常不编写 C++ 代码,但我的一个奇怪的 comp sci 朋友厌倦了看我精彩的 FORTRAN 程序并挑战我用 C++ 重写其中一个,因为他更喜欢我的 C++ 代码。(我们在这里赌钱。)确切的说法是它需要在现代 C++ 编译器中可编译。也许他讨厌一个好的conio.h - 我不知道。
现在我意识到用 C++ 编写有很多非常好的方法,但是我要在这里通过尝试使我的 C++ 版本尽可能像 FORTRAN 式来获得个人胜利。对于奖励积分,这可能会在我转换代码时为我节省一些时间和精力。
所以!这使我想到以下相关查询:
在 goto 上:
- 你是如何工作的?
- C++ 中 goto 的限制是什么?
- 对范围有任何担忧吗?(我将尽可能地尝试全局范围,但你永远不知道。)
- 如果我使用 GCC 扩展转到 void 指针数组,是否有关于未定义行为等的新问题?
在 longjmp 上:
- 您将如何安全地使用 longjmp?
- C++ 中 longjmps 的限制是什么?
- 它对范围有什么作用?
- 是否有任何特定时刻看起来 longjmp 应该是安全的,但实际上我不应该提防?
- 如何使用 longjmp 模拟计算的 goto?
- 如果我的程序中只有一个函数,那么使用 longjmp 而不是 goto 有什么切实的好处吗?
现在我主要关心的是为此计算 goto 工作。看起来我可能会使用 longjmp 来完成这项工作,因为 void 指针数组不是 C++ 标准的一部分,而是 GCC 特定的扩展。