|
비트필드는 각 필드에 특정한 의미가 있을 때만 쓰고요,
그냥 pin0, pin1, pin2, ... 로 쓰실 거라면, 그냥 비트 연산만으로 다 됩니다.
#define bit0 0x00
#define bit1 0x01
#define bit2 0x02
#define bit3 0x04
#define bit4 0x08
#define bit5 0x10
#define bit6 0x20
#define bit7 0x40
#define bit8 0x80
... // 더 필요하시면 더 쓰세요.
#define maskupper 0x00FF
#define masklower 0xFF00
로 정의하신 후,
비트 연산자를 써서 사용하시면 될겁니다.
예를 들어,
short flags = 10000;
if (flags & bit1) {...} // bit1이 set?
flags |= bit2; // bit2를 set
flags &= ~bit3; // bit3를 clear
flags &= maskupper // 상위 8비트를 제거하고 하위 8비트만 남김
|