таблица переходов и указатели кода

Мой код выглядит так: (n — это число из 0, 1, 2 и 3, а loc_A/B/C/D представляет собой блок кода)

int test(int n){
    static void *jt[7]= {&&loc_A, &&loc_B, &&loc_C, &&loc_D};
    goto *jt[n];
  loc_A:
    ......
  loc_B:
    ......
  loc_C:
    ......
  loc_D:
    ......
}

Что означает "&&loc_A"? Это адрес (или расположение) кодов, которые представляет loc_A?


person Allen    schedule 07.07.2013    source источник
comment
почему вы хотите использовать прыжок, вы можете сделать это без прыжка (это лучше). Я должен добавить, что это может помочь вам stackoverflow.com/questions/15702297/dynamic-jump-to-label-in-c   -  person ncm    schedule 07.07.2013
comment
Вы можете сделать то же самое, используя оператор switch.   -  person    schedule 07.07.2013
comment
@imsiso: спасибо, но на самом деле я изучал ассемблерное представление оператора switch ... и исходные коды c переведены в расширенную форму C выше, чтобы проиллюстрировать таблицу переходов.   -  person Allen    schedule 07.07.2013
comment
@ H2CO3: Вы правы, приведенные выше коды на самом деле переведены из оператора switch.   -  person Allen    schedule 07.07.2013


Ответы (1)