구조체, 공용체는 여러 개의 다른 자료형을 묶어 하나의 새로운 자료형을 정의하는 데 사용된다. 구조체나 공용체를 이용하면 관련된 데이터를 한 번에 처리하고 조작할 수 있다. 또한 typedef와 enum을 사용하여 코드의 가독성을 높일 수 있다.
사용자 정의 자료형을 정의하는 이유는 연관 있는 데이터를 하나로 묶을 수 있기 때문에 데이터의 관리, 유지보수가 용이해진다. 코드를 작성할 때도 인자를 한 번에 전달하거나, 여러 자료형의 데이터를 한 줄로 표현할 수 있기 때문에 코드의 가독성 또한 좋아진다.
C언어의 사용자 정의 자료형은 구조체, 공용체로 나뉘며, 자료형의 별칭을 지정할 수 있는 typedef, enum이 있다.
struct Person // Person 구조체, 사용자 정의 자료형
{
char name[20]; // Person 구조체를 구성하는 멤버1
char tel[20]; // Person 구조체를 구성하는 멤버2
int age; // Person 구조체를 구성하는 멤버3
};
Person은 구조체를 식별하기 위한 이름이다. 구조체 내에 있는 name, tel, age 요소들은 멤버라고 한다. 이름, 연락처, 나이 정보를 저장할 수 있는 사용자 정의 자료형이다.
struct Person guest1;
guest1.name = "Pantheon";
guest1.tel = "01012345678";
guest1.age = 35;
printf("Name: %s\n", guest1.name);
printf("Tel: %s\n", guest1.tel);
printf("Age: %d\n", guest1.age);
Person 구조체를 사용하여 guest1 변수를 선언하고, 멤버에 값을 할당한다. 이후 printf 함수를 이용해 guest1의 정보를 출력한 예제이다. 멤버는 구조체 식별자 뒤에 .
을 붙여 구분한다.
. . .