我一直被教导几乎从不在编程中使用goto语句。不过,我们必须这样做,作为我最近编程项目的一部分。我有一个带有各种goto语句的if/else语句,并且goto语句无法执行。我不知道为什么。任何帮助,将不胜感激。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
的比特移位和这样的简要说明:我们实现计算机processer,并需要看一个25位操作码的前3位。所以(myInt >> 22)& 7分离操作码中的3位。
关于这里发生了什么的任何想法?
什么让你觉得'goto'没有执行?另外,'printf'语句可能是误导性的或错误的:如果第一个'printf'打印出来,第二个和第三个将被打印出来。用一个调试器来完成它,它会告诉你在哪里执行。 – Thanatos 2010-10-22 20:17:05
你得到的结果是什么,你想得到什么结果? – 2010-10-22 20:18:31
嗯..你用上面的printf语句试过了,没有看到打印件?您正在测试的代码是否有不同的代码?你至少应该看到贯穿。 – 2010-10-22 20:19:12