태그 글목록: 복합타입

[C++ 정리] 구조체 / 공용체 / 열거체 2015-06-12

데이터를 효과적으로 변수에 담기위해 구조체 / 공용체 / 열거체를 사용한다.

#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;
}
* 가장 많이 사용되는 구조체는 여러 유형의 데이터를 그룹으로 많들어 한개의 객체처럼인식하고 프로그래밍 할 수 있도록 한다.
* 공용체는 거의 사용되지 않으나 모든 멤버가 같은 메모리 공간을 차지하고 있다는 특징이 있다
* 데이터의 유형을 전역에서 효과적으로 분기하고 명시적인 프로그래밍을 하기위해서 열거체가 사용된다.