使用C跳转到代码中的特定行

时间:2011-09-10 23:58:59

标签: c++ c

很抱歉,如果这个问题很愚蠢,但我似乎无法在Google上找到答案。我有一段时间没有完成C编程,并且在我的生活中记得如何在C或C ++中跳回(或转发)到代码中的特定行。如果我没记错的话,有办法做到这一点。

感谢您的帮助!

干杯!

6 个答案:

答案 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和其他“黑魔法”更安全