본문 바로가기

프로그래밍/C언어

[C언어 with Java] typedef, 타입에 새로운 이름을 부여하자.

 

C Prog. with Java


C언어를 다루고 있지만, 다른 프로그래밍 언어인 자바와 비교하면서 내용을 구성하고 합니다. 본 글은, 자바를 먼저 어느정도 알고 계시고, 저와 같이 C언어를  공부하고자 하는 분들에게 도움이 되길 바랍니다.

 

 C언어에서는 새로운 타입의 선언이 가능합니다. 이는 완전히 새로운 자료형(Type)의 선언이 아니라 기존에 있는 자료형에 새로운 이름을 부여하는 겁니다.

 

 키워드 typedef을 사용한 새로운 이름의 부여는 다음과 같이 선언합니다.

typedef 자료타입 새로운이름;

 

 이때, 자료타입에는 둘 이상의 식별자로 이루어진 타입도 가능한데요, 이를테면, unsigned 키워드나 const 키워드가 붙은 자료 타입이 있겠습니다. 어떤 방식으로 쓸 수 있는지 한번 보도록 할게요.

 

typedef int INT;

typedef double DOUBLE;

typedef char CHAR;

 

typedef int* P_INT;

typedef double* P_DOUBLE;

typedef char* P_CHAR;

 

typedef unsigned int UNIT;

typedef unsigned long ULONG;

typedef unsigned char UCHAR;

 

typedef unsigned int* P_UNIT;

typedef unsigned long* P_ULONG;

typedef unsigned char* P_UCHAR;

 

 왜 이렇게 사용을 하는 것일까요? 제가 알고 있는것과 검색을 통해서 약간 정리를 해보았습니다.

1. 명명이 긴 타입을 간결하게 바꾸어 줍니다. 특히 구조체를 사용할 때 유용합니다.

    ex) typedef unsigned int* P_UNIT;

2. 타입이 가진 의미를 분명히 표기할 수 있습니다.

    ex) typedef int ID_TYPE - 아이디의 타입이라는 것을 명시적으로 표시하는 것이 가능합니다. 

3. 어떤 타입을 다른 타입으로 바꿀시, typedef 로 선언해 놓은 새로운 타입에 대해서만 바꾸면, 한번에 적용 가능합니다.

 

 간단한 예제를 보고 마치도록 할게요.