'C++' ptrdiff_t

토스트·2025년 5월 16일
0

'C++' basic

목록 보기
33/35

<cstddef>

ptrdiff_t

"두 포인터 간의 거리" 를 나타내는 데 사용되는 부호 있는 정수 타입(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;
}

결과

0개의 댓글