goto 和标签之间有任何初始化的语句都不可以,除非用括号把它们括起来。
如
goto end;
int i;
end:
这样没关系。
goto end;
int i =0;
end:
这样就不可以了。
goto end;
{
int i =0;
}
end:
改成这样就可以了。
碰到一堆error的情况需要用goto的,其实可以用while 和break解决。
if()
{
goto errorhandle;
}
if()
{
goto errorhandle;
}
if()
{
goto errorhandle;
}
errorhandle:
可以改成
while(1)
{
if()
{
breake;
}
if()
{
breake;
}
if()
{
breake;
}
//handle success
}
//handle error