C 언어에서 구조체(struct)와 유니언(union)은 데이터를 단일 단위로 관리하고 조직화하는 데 사용됩니다. 이러한 데이터 구조들은 프로그래밍에서 매우 중요한 역할을 하며, 데이터를 보다 효율적으로 다루는 데 도움이 됩니다.
구조체 (struct)
구조체는 서로 관련된 여러 데이터 형식을 포함하는 데 사용됩니다. 각 데이터 형식을 멤버(member)라고 하며, 멤버들은 각각 이름을 가질 수 있습니다. 구조체는 다양한 유형의 데이터를 단일 단위로 묶어서 처리하고자 할 때 유용합니다.
다음은 구조체를 정의하고 사용하는 간단한 예제입니다.
struct Person {
char name[50];
int age;
float height;
};
int main() {
// 구조체 변수 선언
struct Person person1;
// 멤버에 값 할당
strcpy(person1.name, "John");
person1.age = 25;
person1.height = 175.5;
return 0;
}
위의 예제에서, struct Person
은 구조체의 이름이고, name
, age
, height
는 각각의 구조체 멤버입니다. struct Person
을 사용하여 person1
이라는 구조체 변수를 선언하고, 이 변수의 멤버들에 값을 할당하고 있습니다.
유니언 (union)
유니언은 여러 데이터 형식 중에서 하나의 데이터 형식만을 동시에 가질 수 있는 특별한 형태의 데이터 구조입니다. 유니언의 각 멤버는 같은 메모리 영역을 공유하며, 서로 다른 시점에 값을 갖을 수 있습니다. 이러한 특징으로 인해 유니언은 메모리를 절약하는 데 유용하게 사용될 수 있습니다.
다음은 유니언을 정의하고 사용하는 간단한 예제입니다.
union Data {
int i;
float f;
char str[20];
};
int main() {
union Data data;
data.i = 10;
printf("%d\n", data.i);
data.f = 25.5;
printf("%f\n", data.f);
strcpy(data.str, "hello");
printf("%s\n", data.str);
return 0;
}
위의 예제에서, union Data
는 유니언의 이름이고, i
, f
, str
은 유니언의 멤버들입니다. data
는 유니언 변수로, 서로 다른 시점에 각 멤버에 값을 할당하고 출력하고 있습니다.
결론
구조체와 유니언은 C 언어에서 데이터를 구조화하고 관리하는 데 중요한 도구로 활용됩니다. 구조체는 관련된 데이터들을 그룹화하여 다루는 데 유용하고, 유니언은 각각의 멤버가 메모리를 공유하면서 서로 다른 시점에 값을 가질 수 있어서 효율적으로 메모리를 활용하는 데 도움이 됩니다. 프로그래밍에서 데이터 처리와 관리를 위해 구조체와 유니언을 적절히 활용하는 것은 중요한 요소입니다.