switch case의 예시 코드는 아래와 같다
#include <iostream>
#include <vector>
int main()
{
int x = 0;
switch (x)
{
case 1: //
break;
case 2: //
[[fallthrough]]
case 3: //
break;
default: //
}
}
위의 코드 내부는 아래와 같다
if (x <= 3)
{
code = jumpTable[x];
goto code;
}
else
{
goto default;
}
이처럼 JumpTable을 통해 이동하고
break를 작성하지 않는 경우는
아래 case의 스택 코드로 넘어간다는 사실을 알 수 있다
의도적으로 break를 작성하지 않으려면
[[fallthrough]]를 작성해 주면 warning을 피할 수 있다
'C++ > [노코프] Tips' 카테고리의 다른 글
[C++ Tips] Virtual Function (0) | 2024.04.06 |
---|---|
[C++ Tips] 클래스/구조체 멤버 정렬 (0) | 2024.04.05 |
[C++ Tips] Unit Test (0) | 2024.04.05 |
[C++ Tips] 생성자 리스트 (0) | 2024.04.04 |
[C++ Tips] random library (0) | 2024.04.04 |