데이터를 효과적으로 변수에 담기위해 구조체 / 공용체 / 열거체를 사용한다.
#include "stdafx.h"
#include <iostream>
using namespace std;
// 구조체 선언
struct structSample
{
char name[10];
int number;
};
// 공용체 선언
union unionSample
{
int number1;
void* number2;
};
// 열거체 선언
enum {GOOGLE, KAKAO, NAVER};
// 구조체 + 열거체
enum PAY_METHOD { GOOGLE_PAY, KAKAO_PAY, NAVER_PAY };
struct userInfo{
PAY_METHOD payMethod;
char name[10];
};
int _tmain(int argc, _TCHAR* argv[])
{
// Ex1> 구조체 사용
structSample userA = {"opendocs1", 100};
cout << "Ex1 :: " << userA.name << " // " << userA.number << "\n";
// Ex2> 공용체 사용
unionSample userB;
// - 모든 멤버가 같은 메모리 공간을 차지하고 있어 한개의 값만 바꿔도 모두 변경된다.
userB.number1 = 200;
cout << "Ex2 :: " << userB.number1 << " // " << (int)userB.number2 << "\n";
// Ex3> 열거체 사용
// - 전역에서 사용되는 상수를 정의하여 사용할 수 있다.
userInfo userC = { KAKAO_PAY, "opendocs2" };
cout << "Ex3 :: " << userC.payMethod << " // " << userC.name << "\n";
return 0;
}
* 가장 많이 사용되는 구조체는 여러 유형의 데이터를 그룹으로 많들어 한개의 객체처럼인식하고 프로그래밍 할 수 있도록 한다.
* 공용체는 거의 사용되지 않으나 모든 멤버가 같은 메모리 공간을 차지하고 있다는 특징이 있다
* 데이터의 유형을 전역에서 효과적으로 분기하고 명시적인 프로그래밍을 하기위해서 열거체가 사용된다.