[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"을 사용해 특정 타입에 대한 또 다른 이름을 설정합니다.
'언어 > Basic C++' 카테고리의 다른 글
[Basic C++] #31-1_STL, C++ 표준 라이브러리 (0) | 2022.05.30 |
---|---|
[Basic C++] #30_캐스팅, const_cast, static_cast, dynamic_cast (0) | 2022.05.28 |
[Basic C++] #27_상수 표현식, constexpr (0) | 2022.05.21 |
[Basic C++] #26_const 포인터, const 참조 (0) | 2022.05.15 |
[Basic C++] #25_우측 값 참조, 이동 시맨틱 (0) | 2022.05.14 |