switch문 jump table

정유석·2024년 4월 10일

c언어 외

목록 보기
2/8

문제 1
switch문의 '값'부분에 왜 정수만 와야 하는가

문제1. jump table 은 프로그램 초기에 작성 되기 때문에 이미 switch 문이 실행되기 전에 jump table 이 작성되게 됩니다. 따라서, '값' 부분에 변수가 들어가게 되면 jump table 에 무엇이 올지 알 수 없으므로 변수를 사용하면 안되는 것입니다.

문제 2
앞서, switch 문이 내부적으로 처리 되는 부분에서 case 1: ~ case 10: 일 때 만 생각하였는데, 만약 case 1:, case 3:, case 4:, case 10: 과 같이 불규칙 적으로 switch 문이 적용된다면 컴퓨터는 jump table 를 어떻게 작성할까요

문제2. 만약 case 1, case 2, case 3, case 100이런 식으로 switch문을 작성한다면 iump table의 크기가 100이 됩니다. 그래서 case '값'을 순차적으로 작성하여야 메모리적인 측면에서 효율적입니다.

profile
개인 기록공간

0개의 댓글