struct vs union

struct는 멤버별 공간, union은 같은 공간을 공유한다

둘 다 멤버를 선언하지만 메모리 배치가 다르다. 구조체는 모두 보관하고, 공용체는 한 번에 하나만 의미가 살아 있다.

구조체: 멤버마다 칸을 따로 차지

id4바이트 grade1바이트 score4바이트

세 멤버 값이 동시에 저장된다.

공용체: 가장 큰 칸 하나를 같이 사용

공유 공간i 또는 f 또는 c

마지막에 넣은 멤버 기준으로 해석해야 한다.

비교 구조체 struct 공용체 union 문제에서 볼 단서
메모리 멤버 공간을 모두 더해 사용 가장 큰 멤버 크기만큼 사용 “각각 저장” vs “공유”
값 보존 여러 멤버가 동시에 보존 마지막 기록이 다른 해석을 덮음 동시에 여러 값 필요하면 struct
접근 s.id / s.score u.i / u.f 기호는 .로 같지만 의미가 다름

핵심공용체는 “여러 이름으로 같은 메모리 칸을 해석하는 방법”이다.