我正在编写一个最终生成C++代码的编译器,我无法使用while\for或任何其他正常循环,所以我将它转换为goto\if和assigments\call行如下:
if (i<b) goto loop_959__again;
loop_959__end: ;
}
{
int inumber;
int i;
i=0;
inumber=3;
if (!(inumber<30)) goto loop_4482__end;
loop_4482__again:
float fnumber;
_A1__main__increase(__owner);
i++;
inumber++;
fnumber=3;
loop_4482__step_begin:
if (inumber<30) goto loop_4482__again;
loop_4482__end: ;
}
Run Code Online (Sandbox Code Playgroud)
这看起来真的很痛苦,但是GCC编译器可以编译和优化上面的代码,好像它包含普通循环等吗?