Handle in C에 대한 기사를 읽었을 때 우리가 void 포인터로 핸들을 구현한다는 것을 깨달았습니다. "무엇이든"Object/data 타입을 얻었습니다. 우리는 Object/데이터를 가져 와서 그 가치를 얻으십시오. 그래서 기본적으로 두 가지 문제가 있습니다 그에 21 인 값 HANDLE 점을 의미 하는가,Handle, Void Pointer, Objects in C++
설치 1. 우리는 기능 dosomething(21,2,2)
에 값을 전달하면 Handle in C
typedef void* HANDLE;
int doSomething(HANDLE s, int a, int b) {
Something* something = reinterpret_cast<Something*>(s);
return something->doit(a, b);
}
에서 가져온 예를 다음에 말할 수를, 그렇다면 우리가 입력 할 때 어떤 객체가 그 객체에 어떻게 캐스트 될 것인가?이 예제에서와 같이 다른 객체에서 그것을 사용할 수 있습니까? Something something
객체의 포인터는 값 21을 저장합니다.
2.Secondly 링크도 "그래서 귀하의 코드에서 그냥 주위에 핸들을 전달 말한다 불투명 한 가치 "는 실제로 무엇을 의미합니까? 우리는 왜 "주변을 돌보는가"? 누군가가 위대 할 객체를 사용하는 핸들에 대해 더 설득력있는 예제를 줄 수 있다면!
HANDLE이 가리키는 값이 21_ 아니요, 이는 s가 21임을 의미합니다. 나는 그 메모리 주소에서 흥미로운 것을 의심합니다. – bejado
내가 틀렸을 수도 있지만 코드에서 다른 유형으로 s를 형 변환합니다. 실제 주소는 절대로 변하지 않습니다. – efekctive