더북(TheBook)

시프트의 대입 연산 버전인 <<=>>=도 이와 비슷한 원칙이 적용된다.

왼쪽 시프트 연산자 <<는 주로 2의 거듭제곱을 표현할 때 사용한다. 가령 앞의 예제에서 #define문을 다음과 같이 바꿀 수 있다.

#define FLOCK_MAGPIE (1U << magpie)
#define FLOCK_RAVEN  (1U << raven)
#define FLOCK_JAY    (1U << jay)
#define FLOCK_CHOUGH (1U << chough)
#define FLOCK_EMPTY   0U
#define FLOCK_FULL  ((1U << corvid_num)-1)

이렇게 하면 열거형으로 표현할 때보다 코드를 더욱 견고하게 구성할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.