-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
1:47 uintptr_t 질문입니다.
23.03.21 18:31 작성 조회수 728
1
uintptr_t 가 hex로 반환되는 값을 unsigned int 10진수로 바꿔주는 것으로 알았는데요.
직접 형변환을 해보니 값이 다르게 나오네요. 왜그런건가요?
답변을 작성해보세요.
2
Soobak
2023.03.21
안녕하세요, 답변 도우미 Soobak 입니다. 😀
우선, 비슷한 질문의 다른 글 의 제 답변을 참고해보시는 것을 추천드립니다.
추가적으로 설명드려보면, uintptr_t
자료형은 다양한 운영체제 환경간의 호환성을 고려하여, 환경마다 각각 크기가 다르게 정의되는 자료형 입니다. 따라서, 질문자님의 환경에 따라서 다르게 정의됩니다.
uintptr_t
자료형은 C++
에서 <stdint.h>
헤더에 정의되어 있는데요,
제 환경을 기준으로 unsigned long int
타입으로 정의되어 있네요.
즉, 질문자님의 환경에서 uintptr_t
자료형이 unsigned int
타입으로 정의되어있다는 보장을 할 수가 없습니다.
따라서, 질문자님께서 uintptr_t
로 형변환 하여 출력을 했을 때와, unsigned int
로 형변환 하여 출력했을 때의 값이 달라질 수 있는 것입니다.
답변이 되셨길 바라며, 추가적으로 궁금하신 부분이 있으시면 언제든지 편하게 질문 글 남겨주세요!
감사합니다. 화이팅! 👍
답변 1