快速提问:
让我们说我正在使用C代码,我调用goto转到特定标签,但我有多个标签:
goto A;
A:
//something
B:
//something else
C:
//something else
当我转到A时,我还会执行B和C还是只退出该功能?
答案 0 :(得分:3)
标签只是代码中的锚点。它不是代码,标签本身不会被执行。 goto
语句“跳转”到标有(带前缀)的语句,并带有goto
语句中的标签。代码继续从那里运行,执行遵循所有规则,如前所述(关于if / else分支,循环,返回,所有东西)。
代码不会“退出”某个功能;当执行到达return
语句时,它从函数“返回”。如果函数体中没有return
语句,则当执行到达函数的主体结束大括号(}
)时返回。