Typedef
typedef는 C와 C++ 프로그래밍 언어의 예약어이다. 다른 자료형의 별명을 만들기 위해 사용된다. 이처럼, struct와 union 타입으로 이루어진 복잡한 자료 구조를 선언하는 문을 단순하게 만들기 위해 종종 사용되지만 다양한 길이의 정수 자료형에 대한 특정한 서술형 이름을 지정하는 것으로 일반화되어 있다. C 표준 라이브러리나 POSIX와 같은 규칙들은 예를 들어 size_t와 time_t처럼 종종 typedef 형의 이름을 '_t'로 끝맺는 것이 종종 권장된다.
typedef는 C와 C++ 프로그래밍 언어의 예약어이다. 다른 자료형의 별명을 만들기 위해 사용된다.[1] 이처럼, struct와 union 타입으로 이루어진 복잡한 자료 구조를 선언하는 문을 단순하게 만들기 위해 종종 사용되지만 다양한 길이의 정수 자료형에 대한 특정한 서술형 이름을 지정하는 것으로 일반화되어 있다. C 표준 라이브러리나 POSIX와 같은 규칙들은 예를 들어 size_t와 time_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
}
같이 보기
[편집]각주
[편집]- ↑ 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.
- ↑ “typedef specifier”. 《cppreference.com》. 2016년 6월 18일에 확인함.