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

C 언어 typedef 키워드 완벽 정리: 기본 사용법부터 구조체 정의까지

typedef란 무엇인가?

C 언어에서는 typedef 키워드를 사용하여 새로운 자료형 이름(data type name)을 정의할 수 있습니다. 다만 typedef로 완전히 새로운 자료형을 만드는 것은 아니며, 이미 존재하는 자료형에 새로운 별칭(다른 이름)을 부여하는 기능입니다.

typedef를 활용하면 긴 자료형 선언을 간결하게 줄일 수 있고, 코드의 가독성과 유지보수성이 크게 향상됩니다.

기본 문법

typedef 자료형 새이름;

간단한 예제

typedef int bhanu;
int a;
bhanu a;
  • 위 선언문은 컴파일러에게 'bhanu'를 'int'의 또 다른 이름으로 인식하도록 지시합니다.
  • 'bhanu'를 사용하여 변수 'a'를 생성할 수 있습니다.
  • 즉, 'bhanu a;'는 'a'를 'int'형 변수로 선언하는 것과 동일한 의미입니다.

실전 예제: 시간 계산 프로그램

#include <stdio.h>

int main() {
    typedef int hours;   // int의 별칭 hours 정의
    hours h;             // int h; 와 동일
    
    printf("Enter hours: ");
    scanf("%d", &h);
    
    printf("Minutes = %d\n", h * 60);
    printf("Seconds = %d\n", h * 60 * 60);
    
    return 0;
}

실행 결과

Enter hours: 1
Minutes = 60
Seconds = 3600

이 예제에서 'hours'라는 이름은 단순히 int의 별칭이지만, 코드를 읽는 사람에게 이 변수가 '시간'을 나타낸다는 의미를 명확하게 전달해 줍니다. 이처럼 typedef는 코드의 의미를 명확히 하는 데 유용하게 활용됩니다.

구조체(structure)에 typedef 적용하기

typedef는 구조체 선언에서 특히 유용합니다. 구조체를 정의할 때 typedef를 함께 사용하면, 이후 변수를 선언할 때마다 'struct 키워드'를 반복해서 작성할 필요가 없습니다.

#include <stdio.h>

typedef struct employee {
    int eno;            // 사원 번호
    char ename[30];     // 사원 이름
    float sal;          // 급여
} emp;                  // emp라는 별칭 부여

int main() {
    emp e = {10, "ramu", 5000};
    
    printf("number = %d\n", e.eno);
    printf("name = %s\n", e.ename);
    printf("salary = %.0f\n", e.sal);
    
    return 0;
}

실행 결과

number = 10
name = ramu
salary = 5000

정리

  • typedef는 기존 자료형에 새로운 이름을 부여하는 키워드입니다.
  • 새로운 자료형을 만드는 것이 아니라 기존 자료형의 별칭(alias)을 정의합니다.
  • 구조체와 함께 사용하면 'struct' 키워드 없이 간결하게 변수를 선언할 수 있습니다.
  • 코드의 가독성과 의미 전달력을 높이는 데 효과적입니다.