#16. void*형 변수?

MSDN 라이브러리를 찾아다니다 보면 void형을 사용하는 파라미터 변수들이 간혹 보입니다. 분명히 변수는 void를 사용할 수 없다고 아셨을 터인데 큰 혼란이 생길 수 있을 것 같아서 이야기하고자 합니다.


void형 파라미터를 사용하는 함수 중 대표적인 것은 아래 두 가지가 있습니다.



    CArchive::Read(void lpBuf, UINT nMax);


    CFile::Read(void* lpBuf, UINT nMax);


이 중에서 혼란이 생기는 부분은 바로 void* lpBuf입니다. 사실, 파라미터에서 다양한 데이터를 한 변수 안에서 동시다발적으로 처리하는 것은 어렵습니다. 그것대신 오버라이드를 통하여 여러버전의 함수를 만들어야 하는 것이 일반적입니다. 하지만, 이러한 void형 변수를 활용하면 캐스팅 구문을 통하여 편리하게 이용할 수 있습니다.


즉, void lpBuf에다가는 아무 형식의 포인터 변수이더라도 자동으로 사용할 수 있도록 해줍니다.

댓글 남기기