언어/Basic C++
[Basic C++] #29_typedef
Hardii2
2022. 5. 22. 19:59
[Basic C++] #29_typedef
C++ 개발에서 까다로운 문법 혹은 특별한 의미를 갖는 부분에 대해 알아보겠습니다.
"전문가를 위한 C"의 10 항목, "C++의 까다롭고 유별난 부분들"에 해당하는 내용입니다.
Overview
- typedef
- 타입 에일리어스
#0. typedef
1. 개념
/************************************************/
typedef int* intPtr;
int* ptr1; // Ok
intPtr ptr2; // Ok
/************************************************/
typedef std::vector<std::string> StringVector;
int main()
{
std::vector<std::string> myStringVector;
StringVector myStringVector2 // 위와 동일
}
Details
- typedef는 기존에 정의된 타입에 별명을 붙여줄 때 사용합니다.
- 기존의 타입들을 자유자재로 사용 가능한 상황에서 굳이 "typedef" 키워드를 사용할 필요가 있을까 싶지만, 타입 이름이 길어질수록 코드의 가독성을 떨어뜨리는 것을 방지할 수 있습니다.
- 예를 들면, 위 예제 코드에서 "std::vector <std::string> myString"을 "StringVector myString2"로 선언한 것을 볼 수 있습니다. 코드가 훨씬 간단해지고, 가독성 또한 향상되겠죠.
#1. 타입 에일리어스
1. 개념
typedef int MyInt; // typedef 키워드 사용
using MyInt = int; // 타입 에일리어스 사용
Details
- typedef의 대안으로 Type Alias가 있습니다.
- 위와 같이 "using"을 사용해 특정 타입에 대한 또 다른 이름을 설정합니다.