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 이 된다)
'개발언어 > C++' 카테고리의 다른 글
(C++) 6. cctype 라이브러리 (0) | 2023.09.08 |
---|---|
(C++) 5. for, while, do while, if, if else, (0) | 2023.09.07 |
(C++) 4. Vector(C++98), Array(C++11) Template Class (0) | 2023.09.07 |
(C++) 3. 동적 배열과 동적 구조체 (0) | 2023.09.07 |
(C++) 2. 포인터와 메모리 해제 (0) | 2023.09.07 |