typedefCC++ 프로그래밍 언어예약어이다. 다른 자료형의 별명을 만들기 위해 사용된다.[1] 이처럼, struct와 union 타입으로 이루어진 복잡한 자료 구조를 선언하는 문을 단순하게 만들기 위해 종종 사용되지만 다양한 길이의 정수 자료형에 대한 특정한 서술형 이름을 지정하는 것으로 일반화되어 있다. C 표준 라이브러리POSIX와 같은 규칙들은 예를 들어 size_ttime_t처럼 종종 typedef 형의 이름을 '_t'로 끝맺는 것이 종종 권장된다.

문법 편집

typedef를 만드는 문법은 다음과 같다: typedef 형선언;[2]

일부 예:

typedef int Length;

위의 문은 int의 동의어로 Length를 만든다.

typedef int (*PFI)(char *, char *);

위의 문은 int를 반환하는 2개의 char * 인수의 함수에 대한 포인터를 위한 동의어로 PFI를 만든다.

C++에서의 사용 편집

C++에서 형 이름은 매우 복잡할 수 있으며 typedef는 이러한 형에 대한 단순한 이름을 할당하기 위한 구조를 제공한다.

이것과

std::vector<std::pair<std::string, int> > values;
for (std::vector<std::pair<std::string, int> >::const_iterator i = values.begin(); i != values.end(); ++i)
{
   std::pair<std::string, int> const & t = *i;
   // do something
}

이것을 고려할 수 있다.

typedef std::pair<std::string, int> value_t;
typedef std::vector<value_t> values_t;

values_t values;
for (values_t::const_iterator i = values.begin(); i != values.end(); ++i)
{
   value_t const & t = *i;
   // do something
}

같이 보기 편집

각주 편집

  1. Kernighan, Brain W.; Ritchie, Dennis M. (1988). 《The C Programming Language》 2판. Englewood Cliffs, New Jersey.: Prentice Hall. 147쪽. ISBN 0-13-110362-8. 2016년 6월 18일에 확인함. C provides a facility called typedef for creating new data type names. … It must be emphasized that a typedef declaration does not create a new type in any sense; it merely adds a new name for some existing type. 
  2. “typedef specifier”. 《cppreference.com》. 2016년 6월 18일에 확인함.