我一直被教導幾乎從不在編程中使用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