ULONG_PTR 란?
32bit 에서는 32bit 크기를, 64bit 에서는 64bit 의 크기를 가지는 정수형 자료 타입입니다.1,2,3
예전 메모리 풀을 만들 당시, 메모리 풀의 주소를 직접 정수 화 하여 조작해야할 일이 있었습니다. 그때는 각 CPU 구조별로 전처리기를 사용하여 각각 만들었지만, 사실 코드가 간단해서 이렇게 했지 정말 거대해지면 이것도 할 짓이 못될 것 같더군요.
이렇게 코딩 후 문제점 파악할 때 문득 API 에서 사용하는 ULONG_PTR 에 대해서 생각이 났습니다. 이게 각 CPU 구조 마다 다른 크기의 정수형 자료를 만들어 준다는걸 그제서야 생각해냈던 겁니다. 여튼 이렇게해서 다시 코드를 수정하고 돌려는 봤습니다만, 아직 64bit 머신에서는 테스트를 못해봤습니다.
MSDN 인용
Pointer Precision
As the pointer precision changes (that is, as it becomes 32 bits on 32-bit Windows and 64 bits with 64-bit Windows), the pointer precision data types reflect the precision accordingly. Therefore, it is safe to cast a pointer to one of these types when performing pointer arithmetic; if the pointer precision is 64 bits, the type is 64 bits. The count types also reflect the maximum size to which a pointer can refer.
출처: http://pak2536.tistory.com/28#footnote_link_28_3 [Axiom]
'[배움] > C++' 카테고리의 다른 글
게임 수학 사이트 (0) | 2018.02.12 |
---|---|
MFC_GRID 사용법 (0) | 2017.11.24 |
C++ 문자열 조작[펌] (0) | 2016.11.21 |
ini 파일을 활용한 다국어 프로그램 예제 (0) | 2016.11.11 |
C++ MFC 유니코드, 멀티바이트 변환 [ 펌 ] (0) | 2016.11.10 |