reinterpret_cast 에 대해..
글쓴이: icanfly / 작성시간: 월, 2003/12/08 - 6:30오후
어제 서점에서 C++ 기초 플러스 4판을 보면서 캐스팅연산자 부분을 보는데 reinterpret_cast 에 대해 좀 나와있어서 유심해 봤었습니다.
정확히 기억아진 않지만... 대충 다음과 같은 코드를 보여주면서, 시스템 종속적인 코드를 만들어낸다고, 약간은 어거지 스러운 캐스팅을 할때 쓰는 놈이라는 식으로 기술이 되있더군요.
struct two_short { short a; short b; }; int main() { struct two_short st_two_short; long c = reinterpret_cast<long>(st_two_short); }
집에와서 대충 기억나는데로 하고 컴파일을 시켜보니 mingw에서는 컴파일이
되지 않는군요.
예전에 윈소켓 루틴을 작성하면서 다자간 접속을 구현할때, long형에 다가 포인터를 담아서 전달한적이 있는데 그때 받는쪽에서 reinterpret_cast를 써서 다시 포인터로 캐스팅해서 잘 동작한적이 있었습니다. win32 환경이라면 위와같은 캐스팅이 크게 문제 될거같지는 않은데.확신은 못하겠네요...고수님들의 조언 기다리겠습니다.
Forums:
reinterpret_cast<> 는 pointer to po
reinterpret_cast<> 는 pointer to pointer, pointer to integer, integer to pointer 시에 사용 합니다.
win32에서 long = int 이므로...제가 사용한 방법은 적법했다
win32에서 long = int 이므로...제가 사용한 방법은 적법했다고 볼수있겠군요.
답변 감사드립니다.
실제로 별문제도 없었고요..
그럼...
reinterpret_cast는 C 언어의 (자료형*) 이런식의 케스팅을
reinterpret_cast는 C 언어의 (자료형*) 이런식의 케스팅을 할떄와 비슷하다고 보시면 됩니다
한마디로 -_-; 포인터형과 데이터 크기가 같다면 무조건(?) 케스팅 되게끔 하는것이죠
markboy님 말씀대로 형이 다른 포인터끼리 케스팅할떄 주로 쓰입니다
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
댓글 달기