반응형
포인터 관련 데이터 타입
- ptrdiff_t : 포인터 연산을 처리하기 위해 사용 << 클릭
intptr_t와 uintptr_t 사용
intptr_t와 uintptr_t 타입은 포인터의 주소를 저장하는 데 사용된다.
이 두 타입은 다른 환경으로 이식이 가능하고 안전한 포인터 선언 방법을 제공한다.
시스템 내부에서 사용하는 포인터와 같은 크기다.
포인터를 정수 표현으로 변환할 때 유용하게 사용할 수 있다.
uintptr_t 타입은 inptr_t 타입의 부호 없는 버전에 해당한다.
대부부느이 연산에서 inptr_t 타입을 사용하는 것이 좋으며, uinptr_t 타입은 intptr_t 타입만큼 유연하지 않고 사용이 제한적이다.
intptr_t 타입의 사용 방법
1 2 3 | int num; intptr_t *pi = # | cs |
다음 코드처럼 정수 변수의 주소를 uintptr_t 타입의 포인터에 할당하면 문법 오류가 발생한다.
1 2 3 | intptr_t *pi = # uintptr_t *pu = (uintptr_t)# | cs |
이러한 타입은 이식성과 안정성 이슈가 있는 겨웅에만 사용해야 한다.
참고문헌 : C 포인터의 이해와 활용. 리처드 리스 저
반응형