728x90
1. 공용체 활용
동일한 저장 징소에 여러 데이터 타입을 저장하는 자료구조
1) 멤버들이 메모리를 공유해서 사용하는 기법 |
2) 공용체의 크기는 공용체의 멤버 중 가장 크기가 큰 멤버에 의해 결정 - 구조체는 모든 멤버의 크기가 구조체의 크기였지만 공용체의 크기는 가장 크기가 큰 멤버에 의해 결정됨 |
![]() |
공용체 변수를 초기화할때는 첫번째 멤버의 초기값만 지정
공용체의 멤버에 접근할 때도 '.'와 '->' 연산자를 사용함
구조체 | 공용체 |
![]() |
![]() |
2. 비트필드
1) 구조체가 가진 멤버를 비트 단위로 사용 |
2) 비트필드 정의 |
![]() |
![]() |
3) 메모리에 할당할 때, 첫 번째 멤버를 최하위 비트에서부터 할당 |
![]() |
4) 비트필드의 멤버에 표현 가능한 범위 밖의 값을 저장하면 오버플로우가 발생 |
![]() ![]() month는 4byte로 16까지 저장가능한데 ent.month는 17이라고 했으므로 오버플로우가 발생 |
5) 비트필드를 정의할 때는 중간에 일부 비트를 비워두고 멤버를 특정 비트에 할당할 수 있음 |
![]() |
728x90