• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

1:47 uintptr_t 질문입니다.

23.03.21 18:31 작성 조회수 728

1

uintptr_t 가 hex로 반환되는 값을 unsigned int 10진수로 바꿔주는 것으로 알았는데요.

직접 형변환을 해보니 값이 다르게 나오네요. 왜그런건가요?

 

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.03.21

안녕하세요, 답변 도우미 Soobak 입니다. 😀

우선, 비슷한 질문의 다른 글 의 제 답변을 참고해보시는 것을 추천드립니다.

추가적으로 설명드려보면, uintptr_t 자료형은 다양한 운영체제 환경간의 호환성을 고려하여, 환경마다 각각 크기가 다르게 정의되는 자료형 입니다. 따라서, 질문자님의 환경에 따라서 다르게 정의됩니다.

uintptr_t 자료형은 C++ 에서 <stdint.h> 헤더에 정의되어 있는데요,
제 환경을 기준으로 unsigned long int 타입으로 정의되어 있네요.

image

즉, 질문자님의 환경에서 uintptr_t 자료형이 unsigned int 타입으로 정의되어있다는 보장을 할 수가 없습니다.

따라서, 질문자님께서 uintptr_t 로 형변환 하여 출력을 했을 때와,
unsigned int 로 형변환 하여 출력했을 때의 값이 달라질 수 있는 것입니다.

답변이 되셨길 바라며, 추가적으로 궁금하신 부분이 있으시면 언제든지 편하게 질문 글 남겨주세요!
감사합니다. 화이팅! 👍