我一直被教导在编程中几乎从不使用 goto 语句。但是,作为我最近的编程项目的一部分,我们必须这样做。我有一个带有各种 goto 语句的 if/else 语句,而 goto 语句无法执行。我不知道为什么。任何帮助,将不胜感激。
int myInt = XXXXXXX;
if((myInt>>22) & 7 == X)
goto a;
else if((myInt>>22) & 7 == Y)
goto b;
else if((myInt>>22) & 7 == Z)
goto c;
a:
printf("this always executes\n");
goto end;
b:
printf("this never executes\n");
goto end;
c:
printf("nor does this\n");
goto end;
end:
//more code
移位等的简要说明:我们正在实现一个计算机处理器,需要查看 25 位操作码的前 3 位。所以 (myInt >> 22) & 7 隔离了操作码中的 3 位。
关于这里发生了什么的任何想法?