상세 컨텐츠

본문 제목

C++ Union 데이터 타입

C++/Problems

by McRobbin 2020. 9. 26. 16:50

본문

Union 데이터 타입을 정리해 보겠습니다.

 

 

 

Union이 쓰이는 상황은 예를들면 이런 것이 있겠습니다.

 

상품을 관리 하는데 구별할 수 있는 유일한 Id 같은걸 넣고 싶은데

 

int형으로 또는 char* 형으로 모두 받고 싶다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
using namespace std;
 
union IdType
{
    int IntId;
    const char* CharId;
};
 
int main()
{
    IdType id;
 
    id.IntId = 10;
 
    // 출력 결과 : 10;
    cout << id.IntId << endl;
 
 
    id.CharId = "itemId";
 
    // 출력 결과 : itemId
    cout << id.CharId << endl;
    
    // 출력 결과 : 쓰레기 값.
    cout << id.IntId << endl;
}
 

union으로 이런식으로 사용할 수 있겠습니다.

 

union 선언 후 int, char* 형으로 받을 수 있는 두개를 놓고.

IdType을 선언해 struct처럼 접근해 사용하면 되겠습니다.

 

 

 

Union의 특징은 메모리 공간을 공유한다는 것입니다!

 

id에 CharId에 문자열을 집어넣고 IntId를 출력해보면 쓰레기 값이 나오게 됩니다.

IntId와 CharId가 같은 메모리 주소에 들어가게 되고 CharId가 값을 차지하고 있으니

IntId에 다시 값을 넣어주기 전까지는 쓰레기 값이 찍히는 겁니다.

'C++ > Problems' 카테고리의 다른 글

C++ const 사용.  (0) 2020.09.25
C++ C스타일 문자열 strcpy_s, strcat_s  (0) 2020.09.25

관련글 더보기