<cstddef>
"두 포인터 간의 거리" 를 나타내는 데 사용되는 부호 있는 정수 타입(signed integer type)으로, 내부적으로 보통 long이나 long long 등 플랫폼에 따라 적절한 크기의 정수형으로 정의되어 있습니다.
시스템에 따라 pointer의 크기는 32bit 혹은 64bit일 수 있습니다.
ptrdiff_t는 그에 맞는 플랫폼 독립적인 타입으로 정의되어 안전하고 이식성 있는 코드를 작성할 수 있게 해줍니다.
ptrdiff_t를 사용하면 코드의 가독성을 높이고, 다른 사람들이 코드를 읽을 때 해당 값이 "두 포인터 간의 거리"와 관련된 데이터임을 직관적으로 이해할 수 있게 해줍니다.
<예시>
#include <iostream>
#include <cstddef>
int main() {
int arr[10];
int* p1 = &arr[2];
int* p2 = &arr[7];
std::ptrdiff_t diff = p2 - p1;
std::cout << diff;
return 0;
}
결과