goto line of код не выполняется

Меня всегда учили почти никогда не использовать операторы 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

Краткое объяснение сдвига бит и тому подобное: Мы внедряем компьютерный процессор, и нужно посмотреть первые 3 бита 25-битного кода операции. Итак (myInt >> 22) & 7 изолирует 3 бита в коде операции.

Есть идеи относительно того, что здесь происходит?

5
задан winwaed 3 March 2011 в 21:53
поделиться