작은숲:위키노트/초보자를 위한 C 언어 강의/typedef 문
typedef 문이 하는 일은 #define 선행처리기가 하는 일과 비슷하다. 이름 자체에서 보면 알 수 있듯이 #define 선행처리기는 매크로 상수, 혹은 매크로 함수를 정의하는 데 사용되고, typedef 문은 데이터형(data type)을 다른 이름으로 부르고자 할 때 사용한다. typedef 문은 반드시 데이터형에서만 사용할 수 있다.
다음 예를 보도록 하자.
typedef unsigned long int UnLong;
UnLong x, y, z;이렇게 typedef 문을 이용해서 unsigned long int 형을 UnLong 이라는 이름을 이용해서 사용할 수 있도록 만들어준다. 그럼 이 다음부터는 unsigned long int 형을 쓸 일이 있으면, UnLong 이라고 쓰면 된다. 즉, 위에서 x, y, z 변수의 데이터형은 곧 unsigned long int 형이 되는 것이다.
이처럼 typedef 문은 긴 이름의 데이터형을 짧은 이름으로 나타내기 위해서 사용한다. 즉, 게으른 프로그래머를 위한 축복이라고 할 수 있다.
그리고, 한가지 주의할 것은 C 언어에서는 반드시 대소문자를 구분해야 한다! 잊지 말자.
즉, 예를 들어,
struct complex
{ int real;
int image;
};
typedef struct complex Complex;
...
Complex x, y;이것은 구조체 complex 형을 Complex라는 이름으로 정의해준 것이다. 앞으로 struct complex 형을 쓸 일이 있다면 Complex라고 쓰면 된다. 즉, 위에서 x, y 변수는 Complex라는 데이터형을 갖는 변수로 선언이 되었는데 이는 결국 struct complex 데이터형이 되는 것이다. 여기에서 Complex와 complex는 다른 의미를 갖는다. Complex는 struct complex를 줄여서 쓰기 위해 typedef 한 것이고, complex는 구조체 태그이다.