[c] 구조체와 유니언

C 언어는 구조체(struct)와 유니언(union)이라는 두 가지 데이터 타입을 제공합니다. 이들은 여러 가지 데이터를 하나의 새로운 타입으로 묶어주는 데 사용됩니다.

구조체

구조체는 여러 개의 데이터 필드를 하나의 묶음으로 만들어주는 데이터 타입입니다. 각 필드는 서로 다른 데이터 타입이 될 수 있습니다. 구조체를 이용하면 하나의 레코드로 여러 데이터를 묶어 새로운 데이터 타입을 만들 수 있습니다.

struct Person {
  char name[50];
  int age;
  float height;
};

위의 예시에서 Person은 새로운 데이터 타입이며, name, age, height는 각각의 필드입니다. 이 필드들은 서로 다른 데이터 타입을 가지고 있습니다.

유니언

유니언은 구조체와 비슷하지만, 각 필드가 메모리를 공유한다는 점에서 차이가 있습니다. 이는 하나의 유니언 변수가 여러 가지 형태의 데이터를 가질 수 있음을 의미합니다.

union Data {
  int i;
  float f;
  char str[20];
};

위의 예시에서 Data는 새로운 데이터 타입이며, i, f, str은 각각의 필드입니다. 하지만, i, f, str들은 하나의 메모리 주소를 공유하게 됩니다.

구조체와 유니언은 C 프로그래밍에서 데이터 구조를 다룰 때 유용한 도구로 사용됩니다. 이를 이용하면 복잡한 데이터를 쉽게 다룰 수 있습니다.

참고 자료