공용체(union)란?

C 언어에서 여러 멤버가 같은 주소부터 겹쳐서 놓이는 형. union { uint32_t w; uint8_t b[4]; } u;처럼 선언하며, 크기는 가장 큰 멤버의 크기(정렬 단위의 배수로 올림)가 된다. 한 번에 의미 있는 값을 갖는 것은 하나의 멤버뿐이며, 같은 메모리를 다른 형으로 보는 용도나, 여러 형식 중 하나의 데이터를 갖는 경우의 메모리 절약에 사용된다. u.w에 쓰고 u.b[0]을 읽은 결과는 엔디언에 따라 달라진다.

일본어 명칭: 共用体

공용체(union)은(는) C 언어 기초 등 1개 분야의 연습 문제 1개에 나와요.

분야: C 언어 기초

해설 속 공용체(union)

공용체(union)이(가) 나오는 문제 (1)

  1. uint32_t는 32비트, uint8_t는 8비트의 부호 없는 정수형이며, 리틀 엔디언 환경으로 한다. 위의 코드를 실행했을 때의 출력으로 올바른 것은?

관련 용어

구조체(struct) 댕글링 포인터(Dangling Pointer) 동적 메모리 할당(Dynamic Memory Allocation) 매크로(Macro) 메모리 누수(Memory Leak) 미정의 동작(Undefined Behavior) 버퍼 오버플로(Buffer Overflow) 비트 필드(Bit-field) 전처리기(Preprocessor) 정렬과 패딩(Alignment and Padding)

용어집으로 돌아가기