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); }