很抱歉,如果这个问题很愚蠢,但我似乎无法在Google上找到答案。我有一段时间没有完成C编程,并且在我的生活中记得如何在C或C ++中跳回(或转发)到代码中的特定行。如果我没记错的话,有办法做到这一点。
感谢您的帮助!
干杯!
答案 0 :(得分:11)
臭名昭着的goto,与标签一起使用。
label_name:
goto label_name;
在使用它之前,请搜索“转到认为有害”。
答案 1 :(得分:5)
C和C ++在预处理阶段之后没有'lines'的概念。因此,您无法“跳转”到一行代码。
如果要在编辑器中跳转到一行代码,这取决于您使用的编辑器。如果要在运行时跳转到特定的语句(不是行),可以使用goto
,但这应该是在大多数情况下都避免使用,因为它导致难以理解的代码,并且在大多数情况下其他控制流结构更合适。
答案 2 :(得分:4)
如果你想要讨厌的简单解决方案:goto
,然后是一个标签,表明你想要去的代码行。
通常情况下,您将拥有一个具有要调用的特定功能的函数,并调用该函数。
答案 3 :(得分:3)
我也认为当你可以帮助时,不应该使用goto指令。
然而,与许多其他语言相反,没有一种简洁的方法可以退出多层if()块,在这种情况下最简单的就是goto。
我建议您添加注释并使用明智的命名标签(l1:... goto l1;糟透了。)
请注意,人们会告诉你goto是坏的,并在循环中使用break和continue语句就像疯了一样。它们与goto指令具有完全相同的 side 效果,可能被认为是坏的(但不是)。
答案 4 :(得分:2)
使用goto
语句,如下所示:
goto SomeLine;
// Code code code...
SomeLine:
请注意,这被认为是非常糟糕的做法。有可能,有一种更好的方法来组织你的代码,完全避免需要。
答案 5 :(得分:0)
有一些选项可以做:'goto'指令,setjmp / longjmp函数。您也可以在c ++ SEH(异常传播和处理)中使用,但这并不简单。如果你真的喜欢跳到特定的代码行,我会建议你使用带有附加状态变量的循环和条件重写你的代码。因为您的代码结构或设计存在严重问题。它可能看起来很丑,但比使用goto和其他“黑魔法”更安全