轉到功能如何使用在不同的功能。對於前跳轉功能,使用在不同的功能
main()
{
....
REACH:
......
}
void function()
{
goto REACH ;
}
如何實現這樣的用法?
轉到功能如何使用在不同的功能。對於前跳轉功能,使用在不同的功能
main()
{
....
REACH:
......
}
void function()
{
goto REACH ;
}
如何實現這樣的用法?
你不能在標準C++。從C++語言標準的$ 6.6.4/1開始
goto語句無條件地將控制轉移到由標識符標記的語句。標識符應爲位於當前函數中的標籤(6.1)。
...或標準C.從$ 6.8.6.1/1 goto語句應命名位於封閉 功能某處標記了C語言的標準
的標識符。 goto語句不得從具有可變修改類型的標識符的範圍之外跳轉到該標識符的範圍內。
海合會:
#include <iostream>
void func(void* target){
std::cout << "func" <<std::endl;
goto *target;
}
int main() {
void* target;
auto flag = true;
l:
std::cout << "label" <<std::endl;
target = &&l;
if (flag) {
flag = false;
func(target);
}
}
請注意,這可能是一個未定義的行爲
你不應該使用轉到http://xkcd.com/292/ –
嘗試來'setjmp'代替。 – UltimaWeapon
問:你爲什麼要這樣做?當然有更好的方法。 – michaelb958