Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 구조체(Structure)의 개념과 사용법


구조체(Structure)는 사용자가 직접 정의할 수 있는 데이터 타입으로, 성격이 다른 여러 자료형을 하나의 단위로 묶어 관리할 수 있게 해주는 기능입니다. 하나의 구조체는 여러 개의 멤버와 구조체 변수를 가질 수 있으며, C 언어에서는 struct 키워드를 사용하여 정의합니다. 또한 구조체 내부의 멤버에는 점(.) 연산자를 통해 접근할 수 있습니다.

구조체 선언 문법

C 언어에서 구조체를 선언하는 기본 문법은 다음과 같습니다.

struct structure_name {
    member definition;
} structure_variables;

각 구성 요소의 의미는 다음과 같습니다.

  • structure_name − 구조체에 부여하는 임의의 이름입니다.
  • member definition − 구조체를 구성하는 멤버 변수들의 집합입니다.
  • structure_variable − 구조체 타입으로 생성된 객체(변수)입니다.

예제 코드

다음은 C 언어에서 구조체를 정의하고 사용하는 예제입니다.

#include <stdio.h>
#include <string.h>

struct Data {
    int i;
    long int f;
} data, data1;

int main() {
    data.i = 28;
    printf("The value of i : %d\n", data.i);
    printf("Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
    return 0;
}

실행 결과

The value of i : 28
Memory size occupied by data : 16	16

위 프로그램에서는 Data라는 이름의 구조체를 정의하고, 이를 바탕으로 datadata1이라는 두 개의 구조체 변수를 생성했습니다. main() 함수 안에서는 점(.) 연산자를 사용해 구조체 객체의 멤버 변수 i에 값 28을 대입한 뒤 출력합니다.

마지막 printf 문은 sizeof 연산자를 이용해 각 구조체 변수가 차지하는 메모리 크기를 확인하는 부분입니다. int형(4바이트)과 long int형(8바이트), 그리고 컴파일러가 삽입하는 구조체 패딩(padding)까지 포함하면 두 변수 모두 16바이트씩 차지하게 됩니다. 참고로 sizeof 연산자의 반환값은 size_t 타입이므로, 실제 프로젝트에서는 %zu 서식 지정자를 사용하는 것이 더 안전하고 권장되는 방식입니다.