lompat tabel & penunjuk kode

Kode saya terlihat seperti ini: (n adalah angka antara 0,1,2 dan 3, dan loc_A/B/C/D masing-masing mewakili blok kode)

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:
    ......
}

Apa singkatan dari "&&loc_A"? Apakah ini alamat (atau lokasi) kode yang diwakili oleh loc_A?


person Allen    schedule 07.07.2013    source sumber
comment
mengapa Anda ingin menggunakan jump Anda dapat melakukannya tanpa jump. (itu lebih baik) Saya harus menambahkan bahwa ini dapat membantu Anda stackoverflow.com/questions/15702297/dynamic-jump-to-label-in-c   -  person ncm    schedule 07.07.2013
comment
Anda dapat melakukan hal yang sama menggunakan pernyataan switch.   -  person    schedule 07.07.2013
comment
@imsiso: terima kasih tetapi sebenarnya saya sedang mempelajari representasi perakitan dari pernyataan switch...dan kode c asli diterjemahkan ke bentuk extended-C di atas untuk mengilustrasikan tabel lompat.   -  person Allen    schedule 07.07.2013
comment
@H2CO3: Anda benar, kode di atas sebenarnya diterjemahkan dari怀pernyataan switch.   -  person Allen    schedule 07.07.2013


Jawaban (1)