From fd6449c05c9d823044544cbf2109e93e6e205174 Mon Sep 17 00:00:00 2001 From: Peace Date: Fri, 25 Apr 2025 12:20:09 +0900 Subject: [PATCH] bit flag for structure --- practice/g_bitFlagForStruct.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 practice/g_bitFlagForStruct.c diff --git a/practice/g_bitFlagForStruct.c b/practice/g_bitFlagForStruct.c new file mode 100644 index 0000000..f272057 --- /dev/null +++ b/practice/g_bitFlagForStruct.c @@ -0,0 +1,31 @@ +#include + +typedef struct +{ + unsigned int data : 10; // 10비트, 0~1023 + unsigned int error_code : 6; // 6비트 플래그 +} DataPacket; + +int main() +{ + DataPacket packet; + packet.data = 108; + packet.error_code = 0; + + printf("[Packet] data: %d, error_code: 0x%x\n", packet.data, packet.error_code); + + // 에러 감지 + // 0번째 비트 켜기 + packet.error_code |= 1; + printf("[Packet] data: %d, error_code: 0x%x\n", packet.data, packet.error_code); + + // 3번째 비트 켜기 + packet.error_code |= (1 << 3); + printf("[Packet] data: %d, error_code: 0x%x\n", packet.data, packet.error_code); + + // 5번째 비트 켜기 + packet.error_code |= (1 << 5); + printf("[Packet] data: %d, error_code: 0x%x\n", packet.data, packet.error_code); + + return 0; +}