Yürütülemedi. Programlamada her zaman goto ifadelerini kullanmama neredeyse her zaman öğretildi. Ancak, en son programlama projemin bir parçası olarak bunu yapmak zorundayız. Çeşitli goto deyimleriyle if/else deyim var ve goto deyimleri yürütme başarısız oluyor. Neden olduğuna dair hiçbir fikrim yok. Herhangi bir yardım takdir edilecektir.goto satır kodu
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
bit kayması ve bu tür kısa bir açıklama: Bir bilgisayar processer uygulanması ve 25 bit işlem kodu ilk 3 bit bakmak gerekir edilir. Yani (myInt >> 22) & 7, opcode'daki 3 biti ayırır.
Burada neler olup bittiğine dair herhangi bir fikir var mı?
deneyin? Ayrıca, 'printf' ifadeleri yanıltıcı veya yanıltıcıdır: İlk' printf 'yazdırılırsa, ikinci ve üçüncü yazdırılır. Bir hata ayıklayıcısını kullanarak, yürütmenin nereye gittiğini gösterecek. – Thanatos
Elde ettiğiniz sonuç nedir ve elde etmek istediğiniz sonuç nedir? –
hmm .. Yukarıdaki printf ifadenizle denediniz mi ve baskıları görmediniz mi? Test ettiğiniz kodun farklı kodları var mı? En azından düşüşü görmelisin. –