if & switch

if

  • 가장 위 if 구문부터 시작해 조건이 충족되는지 컨디션 체크
    • 느린 속도
  • if, else if 가 많아질수록 Assembly: CMP도 많아짐
  • 범위 식도 체크 가능

switch

  • 컴파일 할 때 점프테이블을 생성
    • 점프 테이블 기반으로 어느 구문으로 갈 지 미리 알고 있음
      • 빠른 속도
    • case 개수에 따라 점프 테이블 사이즈가 커짐
      • 점프하는 속도는 동일, 사이즈 무관
      • 그래서 case 값은 read-only
  • Finite State Machine
    • OS이 없는 간단한 디바이스에서, 어떤 state에서 어떻게 작동할 지 구현
    • state를 enum으로 정의하고, switch 구문 진입 전에 state를 정해주고 바로 해당 state로 점프
  • switch는 정수를 판단할 수 있다 (u)int or char -> case ‘A’ -> read only

Categories: ,

Updated: