You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LearnCCpp/practice/g_bitFlag.c

30 lines
986 B

#include <stdio.h>
#define FLAG_A 0x01 // 0000 0001
#define FLAG_B 0x02 // 0000 0010
#define FLAG_C 0x04 // 0000 0100
int main()
{
unsigned char flags = 0;
printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X'));
// A 활성화
flags |= FLAG_A;
printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X'));
// C 활성화
flags |= FLAG_C;
printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X'));
// B 활성화
flags |= FLAG_B;
printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X'));
// B 비활성화
flags &= ~FLAG_B;
printf("A: %c, B: %c, C: %c\n", (flags & FLAG_A ? 'O' : 'X'), (flags & FLAG_B ? 'O' : 'X'), (flags & FLAG_C ? 'O' : 'X'));
return 0;
}