私はいつも、プログラミングで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ビットを分離します。
ここで何が起こっているかについて何かアイデアはありますか?