C++ 에서 코드의 가독성과 효율을 높이기 위한 구조체와 공용체, 열거체에 대해서 정리한다. 

 

구조체란 ? (struct)

  • 사용자가 정의할 수 있는 데이터 타입 
  •  하나의 변수안에 여러개의 변수를 저장 할 수 있다 ( python의 dictionary와 비슷)
struct MyStruct{
    int type : 4; // :뒤에 있는 숫자는 해당 데이터 타입의 bit수를 제한한다 
    int null_space : 4; // 이렇게 아무 값을 넣지 않을 공간을 미리 만들 수도 있다
    char name[20] : 21; 
    unsigned int price : 4;
}

 

공용체란 ? (union)

  • 서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 데이터 형식 
  • 여러개의 데이터형을 선언 했을 때 하나의 데이터형만 사용이 가능하다 
  • 차지하는 메모리 공간은 선언된 데이터 타입중에 가장 큰 데이터타입의 크기로 설정된다 
union MyUnion{
    int int_val;
    float float_val;
    double double_val;
    long long_val;
}

// ...... // 
MyUnion test1; 

test1.int_val = 3; // int_val에 값 저장 
test2.float_val = 3.3; // int_val에 값이 소실되고 float_val이 저장된다

열거체란 ? (enum : enumeration)

  • 기호 상수를 만들 수 있다
  • 상수에 매칭되는 정수는 상수의 순서대로 0부터 시작하여 1씩 증가한다    
enum spectruum { red, orange, yellow, green, blue, violet, indigo, ultraviolet};

cout << red << endl;  // 0 출력
enum spectruum { red=100, orange, yellow, green, blue, violet, indigo, ultraviolet};

cout << red << endl;  // 100 출력
cout << orange << endl;  // 101 출력 (상수는 이전 상수의 값 + 1 이 된다)

 

+ Recent posts