본문 바로가기

C-Language/typedef

typedef in C language

C 언어 typedef 사용하기



C 언어의 typedef 은 키워드 자체에서 나타내고 있는 것처럼 자료형(type)을 정의(define)하기 위한 수단으로 사용된다

예를 들어, C 언어에서는 지원하지 않는 boolean 형의 자료형을 직접 선언하여 사용하고자 한다면, 다음과 같이 선언하고 사용하면 된다


typedef 를 사용하여 boolean 형 자료형을 선언하고 사용하는 예

typedef 를 사용하여 boolean 자료형을 선언하는 예 typedef unsigned char boolean;


위에서 선언한 boolean 자료형을 사용하여 변수를 생성하는 예

boolean saved = 1;



typedef 과 구조체를 사용하여 복잡한 자료형을 생성하는 예

typedef struct USER

{

    int id ;

    char name[20] ;

    char email[20] ;

} User ;


위에서 선언한 User 자료형을 이용하여 구조체 변수를 생성하는 예

User user;



typedef, #define의 비교


 

 typedef

#define 

 용 도  

 자료형을 선언하는 용도로만 사용해야 한다

 자료형은 물론 일반 값을 대신하여 사용된다

 실행시기  

 컴파일러

 전처리기(Preprocessor)


#include <stdio.h>

#define false 0  // 코드에 사용된 false 를 0으로 바꾸는 전처리 명령
#define true 1   // 코드에 사용된 true 를 1으로 바꾸는 전처리 명령

typedef struct USER
{
	int id;
	char name[20];
	char email[20];
} User;

void printUser(User *user);

int main()
{
	typedef unsigned char boolean;
	boolean saved = true;
	printf("saved = %d \n", saved);

	User guest, member;
	guest.id = 10;
	strcpy(guest.name, "김진호");
	strcpy(guest.email, "jhkim@gmail.com");

	member.id = 20;
	strcpy(member.name, "김인철");
	strcpy(member.email, "inchol@naver.com");

	printUser(&guest);
	printUser(&member);

	return 0;
}

void printUser(User *user)
{
	printf("번호:%d, 이름:%s, 메일:%s \n", user->id, user->name, user->email);
}