當(dāng)把OC的.m文件改為C++的.mm之后報錯:Cannot jump from this goto statement to its label
bool goto_test(void){
printf("do some work\n");
goto failed;
int count = 10;
return true;
failed:
{printf("i am failed\n");return false;}
}
原因是:goto failed;和failed:中間不能聲明變量。注釋掉int count = 10;即可build成功。但注釋掉影響很多業(yè)務(wù)邏輯。采用把goto failed放在最前面的方法,但這時printf("do some work\n");永遠(yuǎn)不會執(zhí)行,已經(jīng)return了。
最后方案:刪掉goto,改為方法調(diào)用。