<aside> 💡

Flag란?

특정 상태를 0 or 1의 비트로 나타내는 방법

주로 여러개의 상태를 하나의 정수형 변수로 관리할 때 사용

</aside>

Unsigned형을 사용하는 이유

Code

#define IS_RUNNING   (1 << 0)
#define IS_VISIBLE   (1 << 1)
#define IS_ERROR     (1 << 2)
#define IS_FINISHED  (1 << 3)

unsigned int flags = 0;

// 상태 설정 
// 해당 상태를 추가
flags |= IS_RUNNING;  // 실행 상태로 전환
flags |= IS_VISIBLE;  // 보이게 설정

// 상태 해제
flags &= ~IS_VISIBLE; // 숨김

// 상태 확인
// flags 가 IS_ERROR 상태라면 0이 될 수 없기 때문에 무조건 실행
if (flags & IS_ERROR) {
    printf("에러 발생!\\n");
}

참고자료

TIL/Computer System/플래그(flag).md at main · ayeon59/TIL

Special Thanks to @Anonymous