**Autonomous driving tech./*C++

[C++] 08_공용체( union )와 열거체

2wnswoo 2024. 9. 16. 14:13

공용체( union )

서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 데이터 형식

(구조체는 int형과 double형을 한꺼번에 보관할 수 있지만, 공용체는 int형이나 double형 중에서 한번에 어느 하나만 보관할 수 있음) 

구조체( struct )와 거의 동일하지만 모든 멤버 변수가 하나의 메모리 공간을 공유한다는 점이 다르다.

즉, 공용체( union )은 내부에 여러가지 타입의 멤버 변수를 선언하지만 실제 사용할 때에는 하나의 멤버 변수만 사용할 수 있다.

 

특징

  • 한 번에 하나의 값만 보관할 수 있으므로, 가장 큰 멤버를 보관할 수 있을 만큼의 공간이 필요하다.(따라서 공용체의 크기는 가장 큰 멤버의 크기가 됨)
  • 멤버 변수끼리 같은 메모리 공간을 공유하기 때문에 각 멤버들의 메모리 시작 주소가 동일하다. (따라서, 각 멤버 변수의 변화가 다른 멤버 변수에 영향을 끼침 / struct는 멤버 변수가 각각 다른 메모리 공간을 할당받음)
  • 메모리 절약을 위해서 사용한다. (여러가지 데이터형을 사용할 수 있지만 이들을 동시에 사용할 수 없을 때)

 

 

 

위 내용은 '티스토리 HyunZzang님의 union(공용체)에 대하여 정리한 글'의 일부를 정리한 내용입니다.