C 프로그래밍 · 2 min read · Nov 18, 2025
리눅스 C 프로그래밍 튜토리얼 23부 - 구조체

지금까지 진행된 이 C 프로그래밍 튜토리얼 시리즈에서는 변수에서 함수, 포인터에 이르기까지 여러 가지 측면에 대해 논의했습니다. 그러나 이는 표면을 긁는 것에 불과하며, C 프로그래밍 언어에는 많은 다른 중요한 개념이 있습니다.
오늘 이 튜토리얼에서는 그러한 개념 중 하나인 구조체 개념에 대해 논의하겠습니다.
C 프로그래밍 언어의 구조체
구조체는 다음과 같이 선언됩니다:
struct TAG {
*변수 선언*
*변수 선언*
*...*
*...*
*...*
};TAG는 이 구조체에 부여하고 싶은 이름으로, emp_details와 같은 이름이 될 수 있습니다.
이제 변수는 C 프로그램에서 값을 저장하는 데 사용된다는 것은 일반적인 상식이 되어야 합니다. 지금까지 우리는 하나 이상의 변수를 사용하는 프로그램/코드를 보았지만, 여러 변수가 함께 그룹화되는 것을 본 적은 없습니다. 네, 가능합니다. 그리고 그것이 바로 구조체가 하는 일입니다.
코드를 작성할 때 회사의 직원 세부 정보를 유지 관리하는 경우를 상상해 보십시오. 새로운 직원이 입사할 때마다 프로그램은 직원의 이름, 나이, 직책 및 부서로 정보를 입력받습니다. 따라서 이 경우 직원과 관련된 모든 정보가 단일 단위로 처리되도록 코드를 작성하는 것이 이상적입니다.
따라서 이러한 방식으로 코드를 작성하는 한 가지 방법은 모든 직원 관련 정보를 그룹화하는 구조체를 만드는 것입니다. 필요한 것은 구조체의 인스턴스(또는 해당 구조체 유형의 변수)를 생성하고 새로운 직원과 관련된 모든 세부 정보를 입력하는 것입니다.
다음은 구조체 유형 변수를 생성하는 몇 가지 방법입니다(a, b, c의 경우):
struct emp_details {
*변수 선언*
*변수 선언*
*...*
*...*
*...*
}a, b, c;struct emp_details a;
struct emp_details b;
struct emp_details c;이론은 충분합니다. 이해하기 쉬운 예를 들어 보겠습니다. 팀에 2명의 구성원이 있고, C로 코딩할 프로그램을 통해 그들의 세부 정보를 컴퓨터에 저장하고 싶다고 가정해 보겠습니다. 다음 코드는 구조체가 어떻게 도움이 될 수 있는지에 대한 기본 아이디어를 제공합니다:
#include
struct emp_details {
int emp_code;
int emp_age;
};
int main()
{
struct emp_details employee[2];
printf("\n 첫 번째 구성원의 코드와 나이를 입력하세요\n");
scanf("%d", &employee[0].emp_code);
scanf("%d", &employee[0].emp_age);
printf("\n 두 번째 구성원의 코드와 나이를 입력하세요\n");
scanf("%d", &employee[1].emp_code);
scanf("%d", &employee[1].emp_age);
for(int i=0; i<2; i++)
{
printf("\n 구성원 %d의 코드와 나이는: %d와 %d입니다. \n", i+1, employee[i].emp_code, employee[i].emp_age);
}
return 0;
} 이 코드에서는 먼저 ‘emp_details’라는 이름의 구조체를 선언하고 ‘emp_code’와 ‘emp_age’를 두 개의 멤버 변수로 정의했습니다. 그런 다음 ‘main’ 함수에서 이 구조체의 두 개체를 배열 형태로 정의했습니다. 그 후, 사용자로부터 입력을 받아 이 개체에 해당하는 멤버 변수를 채웠습니다. 마지막으로 프로그램은 이러한 값을 사용자에게 출력합니다.
프로그램을 실행했을 때의 출력은 다음과 같습니다:
첫 번째 구성원의 코드와 나이를 입력하세요
105
27
두 번째 구성원의 코드와 나이를 입력하세요
110
32
구성원 1의 코드와 나이는: 105와 27입니다.
구성원 2의 코드와 나이는: 110와 32입니다.구조체 단위의 일부인 변수는 어떤 유형이든 될 수 있습니다. 다른 구조체의 객체/인스턴스를 구조체의 일부로 가질 수도 있습니다. 이러한 내용과 더 많은 내용을 다음 구조체 튜토리얼에서 다룰 예정이니 기대해 주세요.
결론
이 튜토리얼에서는 C 프로그래밍 언어의 구조체 기본 사항에 초점을 맞췄습니다. 우리는 구조체를 선언하는 방법, 그에 대한 객체 또는 인스턴스를 정의하는 방법, 마지막으로 구조체 변수를 접근하는 방법을 배웠습니다. 다음 튜토리얼에서는 구조체에 대해 좀 더 깊이 파고들어 더 많은 것을 배울 것입니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.