구조체를 정의할 때 다른 구조체의 맴버로 사용할 수 있는데, 이를 중첩 구조체라고 한다. 앞에서 봤던 자동차의 예제에서 문의 크기를 추가하고자 한다.
struct car
{
char name[10]; //차량 이름
int year; // 연식
double fuel; // 연료량
int left_door; // 왼쪽 문 크기
int right_door; //오른쪽 문 크기
int back_door; //뒷문 크기
};
이런 식으로 구성할 때, door에 대한 맴버가 3개이기 때문에 이 맴버를 묶어서 다시 하나의 구조체로 만들고, 이 구조체를 하나의 맴버로 이용할 수 있다. 즉, 문에 대한 맴버 3을 가지고 먼저 구조체를 만든 후, 해당 구조체를 맴버로 만들면 된다.
struct size_of_door {
int left_door;
int right_door;
int back_door
};
struct car {
char name[10];
int year;
double fuel;
struct size_of_door size;
};
이 때, 주의해야 할 것이 있는데, 중첩 구조체는 그 구조체 자신을 맴버로 할 수는 없다