[C++ 정리] 구조체 / 공용체 / 열거체

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

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
#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;
}
* 가장 많이 사용되는 구조체는 여러 유형의 데이터를 그룹으로 많들어 한개의 객체처럼인식하고 프로그래밍 할 수 있도록 한다.
* 공용체는 거의 사용되지 않으나 모든 멤버가 같은 메모리 공간을 차지하고 있다는 특징이 있다
* 데이터의 유형을 전역에서 효과적으로 분기하고 명시적인 프로그래밍을 하기위해서 열거체가 사용된다.

댓글 남기기