MSDN 라이브러리를 찾아다니다 보면 void*형을 사용하는 파라미터 변수들이 간혹 보입니다. 분명히 변수는 void를 사용할 수 없다고 아셨을 터인데 큰 혼란이 생길 수 있을 것 같아서 이야기하고자 합니다.
void형 파라미터를 사용하는 함수 중 대표적인 것은 아래 두 가지가 있습니다.
CArchive::Read(void* lpBuf, UINT nMax);
CFile::Read(void* lpBuf, UINT nMax);
이 중에서 혼란이 생기는 부분은 바로 void* lpBuf입니다. 사실, 파라미터에서 다양한 데이터를 한 변수 안에서 동시다발적으로 처리하는 것은 어렵습니다. 그것대신 오버라이드를 통하여 여러버전의 함수를 만들어야 하는 것이 일반적입니다. 하지만, 이러한 void*형 변수를 활용하면 캐스팅 구문을 통하여 편리하게 이용할 수 있습니다.
즉, void* lpBuf에다가는 아무 형식의 포인터 변수이더라도 자동으로 사용할 수 있도록 해줍니다.
'Software Development > Visual C++' 카테고리의 다른 글
| #18. 간단한 어휘 분석의 구현 (0) | 2002/04/21 |
|---|---|
| #17. CString을 LPTSTR로... (2) | 2002/04/21 |
| #16. void*형 변수? (0) | 2002/04/20 |
| #15. 대화 상자 기반 어플리케이션 예제 보기 (0) | 2002/03/25 |
| #14. Modal Status와 Modeless Status의 차이 (0) | 2002/03/25 |
| #13. 지능적인 대화 상자 프로그래밍하기 (0) | 2002/03/24 |