小编Cod*_*ker的帖子

如何(计算)C++中的goto和longjmp?

我通常不会编写C++代码,但我的一个奇怪的comp sci朋友厌倦了查看我精彩的FORTRAN程序并挑战我用C++重写其中一个,因为他更喜欢我的C++代码.(我们在这里投入资金.)确切的术语是它需要在现代C++编译器中进行编译.也许他讨厌一个好的conio.h - 我不知道.

现在我意识到在C++中有很好的写作方式,但是我想通过尽可能使我的C++版本成为FORTRAN-esque来获得个人胜利.对于奖励积分,当我转换代码时,这可能会节省一些时间和精力.

所以!这带我进入以下相关查询:

在gotos:

  1. 你是如何工作的?
  2. 对C++中的gotos有什么限制?
  3. 有关范围的任何担忧?(我将尽可能地尝试全局范围,但你永远不会知道.)
  4. 如果我使用GCC扩展转到void指针数组,是否有任何关于未定义行为的新问题等?


在longjmp上:

  1. 你如何安全地使用longjmp?
  2. C++中对longjmps的约束是什么?
  3. 它的作用范围是什么?
  4. 有什么特别的时刻,看起来longjmp应该是安全的,但实际上并不是我应该注意的吗?
  5. 如何使用longjmp模拟计算的goto?
  6. 如果我的程序中只有一个函数,那么使用longjmp over goto有什么明显的好处吗?

现在我的主要关注点是为此计算goto.看起来我可能会使用longjmp来完成这项工作,因为void指针数组不是C++标准的一部分,而是GCC特定的扩展.

c++ goto longjmp language-extension setjmp

12
推荐指数
2
解决办法
2915
查看次数

标签 统计

c++ ×1

goto ×1

language-extension ×1

longjmp ×1

setjmp ×1