이번 항목은 이름을에 별명을 지어 줄때 쓰는 typedef 에 대한 이야기이다. 저번 Exceptional C++ 에서 다루지 않았던 내용이라 새로웠지만, Effectivce C++ 에서 다루었던 내용이고, 평소에 그 유용성과 좋지 않을 때를 알고 있떤 터러, 정리 차원에서 다시 정리한다. 질문 1. typedef를 사용하는 이유는? 생각나는 대로 이유/상황을 적어 보자. 질문 2. STL 컨테이너를 사용하는 코드에서 typedef를 사용하면 왜 좋을까? 해설 질문 1 typedef를 사용 하는 이유는? 우선 코드가 짦아져서 좋고, 함수 포인터 등을 쓰려고 할 때 편하며, 또한 템플릿 클래스에 사용하기 용이하며, 한가지 타입을 한번에 변환하고자 할때 편하다. 그리고 그 타입에 대한 의사 전달에 가능하다...
typedef 검색 결과
new[] 관해서는 typedef가 독이지만, typedef 는 사실 여러 방면으로 쓸모가 많다. 나 같은 경우에는 .. 컨테이너 사용 할때, 컨테이너의 이터레이터를 줄이기 위해서 사용 하곤 한다. 하지만 typedef의 진정한 의미는 바로 따로 있다. 진정한 의미 C++ 에서의 typedef 는 가독성과 코드 수정을 한줄로 만들어 줄께와 같다. 여기서 가독성은 쉽게 이해가 가는데 C++ 에서의 코드 수정은 좀 갸우뚱 할 것이다. C++ 은 OOP 적으로 코딩이 가능한데, OOP의 꽃~ 캡슐화와 typedef 와 맞물리면 코드 수정이 엄청나게 간편해 진다. 예를 들어, 데이터를 관리하기 위해서 컨테이너를 골라야 했다. 대부분의 데이터가 마지막에 들어가고, 마지막에서 지워 진다는것을 알게됬고 나는 VECT..
이 코드를 우선 보면 #include using namespace std; typedef struct { unsigned int a; int b; int c; } TEST, *LPTEST; int main(void) { LPTEST test_data; LPTEST aaa; aaa = (TEST *)malloc(sizeof(TEST)); aaa->a = 1; aaa->b = 2; aaa->c = 3; DWORD test = (DWORD)aaa; test_data = (LPTEST)test; } 이해하기 쉬운가? 갑자기 포인터에 DWORD로 형 변환시켜서, 저장한 다음에, 그것을 다시 LPTEST 형으로 다시 변환시켜서 ... 쓴다. 애초에 void* 로 넘겨 버려서 사용한다면, 더 가독성이 좋을텐데 말이다..
최근댓글