我通常不编写C++,但是我的一个奇怪的计算机科学朋友看腻了我精彩的FORTRAN程序并挑战我重新用C++编写其中一个,因为他喜欢我的C++代码。 (我们在这里打赌钱。)确切的条款是它需要在现代C++编译器中可编译。也许他讨厌conio.h - 我不知道。
现在我意识到有完全好的编写C ++ 的方式,但是我正在努力使我的C ++ 版本尽可能地类似FORTRAN。对于额外的加分,这可能会在我转换代码时节省一些时间和精力。
那么!这带给我以下相关的查询:
关于goto:
- 如何使用goto?
- C++中的goto限制是什么?
- 有关作用域的任何问题?(我将尽可能全局范围,但你永远不知道。)
- 如果我使用GCC扩展到void指针数组中进行跳转,是否有任何新的关于未定义行为等方面的问题?
关于longjmp:
- 如何安全地使用longjmp?
- C++中对longjmp的限制是什么?
- 它对范围有何影响?
- 是否有任何特定时刻看起来longjmp应该安全,但实际上不安全,我应该注意的地方?
- 如何使用longjmp模拟计算goto?
- 如果我的程序中只有一个函数,那么使用longjmp相比使用goto是否有任何实际好处?
现在我主要关心的是使计算goto正常工作。看起来我可能会使用longjmp使其工作,因为void指针数组不是C++标准的一部分,而是GCC特定的扩展。