typedef는 이미 존재하는 식별자에 대해 새로운 타입 이름을 붙여주고 싶을 때 사용한다.
예를 들어, 페어 리스트를 만들기 위해 이와 같은 타입이 필요하다고 생각해보자.(정확히 저 코드가 무슨 뜻인지는 몰라도 됨.)
std::vector<std::pair<std::string, int>> pairlist
이렇게 긴 코드를 쓰기 힘드니까 하나의 새로운 타입으로 닉네임을 붙여서 만들어버리는 것이다.
typedef std::vector<std::pair<std::string, int>> pairlist_t
int main(){
pairlist_t pairlist
}
이렇게 하면 위에 있던 긴 코드를 pairlist_t 라는 타입으로 정의하고 사용할 수 있다.
주로 typedef를 사용할 때는 이름 뒤에 type이라는 의미로 _t를 붙인다.
이렇게 이미 존재하는 타입에 대해 새로운 식별자를 주고 효율적으로 사용할 수 있다는 점이 typedef의 가장 큰 장점이다.
typedef int number_t
int main () {
number_t num;
}
위 코드에서는 int 타입에 number_t라는 이름을 주어서 int 대신 number_t도 사용할 수 있도록 하였다.
typedef는 using 키워드를 통해서 대체할 수도 있다.
using int number_t
int main () {
number_t num;
}