내 코드는 다음과 같다 : (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가 나타내는 코드의 주소 (또는 위치)입니까?
점프를 사용하고 싶은 이유 점프 없이도 할 수 있습니다. (도움이됩니다.)이 점이 도움이 될 것이라고 덧붙여 야합니다. http://stackoverflow.com/questions/15702297/dynamic-jump-to-label-in -c – ncm
switch 문을 사용하여 이와 동일한 작업을 수행 할 수 있습니다. –
@imsiso : 감사합니다.하지만 실제로 switch 문을 어셈블리로 표현하는 방법을 배우고있었습니다. 원래의 C 코드는 "점프 테이블"을 설명하기 위해 위의 확장 된 C 형식으로 변환되었습니다. – Allen