다른 사람들이 Bitwise-OR을 사용하여 전에 플래그를 결합하는 것을 보았습니다.
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
그것은 또한 내가하는 방식입니다.
그러나 나는 또한 add를 사용하여 (많지 않은) 결합 플래그를 보았습니다.
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
어느 쪽이 더 "판독 가능"합니까? (어느 사람이 더 많이 인식 할 것이라고 생각하십니까?)이를 수행하는 "표준"방법은 무엇입니까? 어느 것을 더 선호 해?
@ Job : 가독성, 인식 가능성, 환경 설정 및 모범 사례에 대해 질문하기 때문에 StackOverflow 질문이 아닙니다. 그것에 대한 객관적인 대답은 없습니다. 여기에 속합니다.
—
Macneil
1<<0
,,1<<1
등을 사용해보십시오1<<2
. 플래그가 많으면 읽기 쉽고 유지 관리가 쉬우 며 오류가 발생하기 쉽습니다. 예를 들어 64 비트 int의 64 비트를 모두 압축하는 경우 오타를 피하고 싶을 것입니다. :) 표현 방법1
도 중요합니다. VS2010의 64 비트 정수의 경우 그것이1UI64
또는 그와 비슷한 것으로 생각합니다 . 잘못된 유형을 사용하면 물릴 수 있습니다.