Пространства имён
Варианты
Действия

ptrdiff_t

Материал из cppreference.com
< c‎ | types

Определено в заголовочном файле <stddef.h>
typedef /*implementation-defined*/ ptrdiff_t;
ptrdiff_t является целое число типа результат вычитания двух указателей.
Оригинал:
ptrdiff_t is the signed integer type of the result of subtracting two pointers.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Заметки

ptrdiff_t используется для арифметики указателей и индексации массивов, если отрицательных значений возможны. Программы, которые используют другие виды, такие как int, может не на, например, 64-битные системы, когда индекс превышает INT_MAX или если она опирается на 32-разрядной арифметике.
Оригинал:
ptrdiff_t is used for pointer arithmetic and array indexing, if negative values are possible. Programs that use other types, such as int, may fail on, e.g. 64-bit systems when the index exceeds INT_MAX or if it relies on 32-bit modular arithmetic.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Только указатели на элементы одного массива (в том числе указатель на одну мимо конца массива) может быть вычтена друг от друга.
Оригинал:
Only pointers to elements of the same array (including the pointer one past the end of the array) may be subtracted from each other.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если массив является настолько большим (более PTRDIFF_MAX элементов, но меньше, чем SIZE_MAX байт), что разница между двумя указателями не может быть представимо в виде ptrdiff_t, результат вычитания двух таких указателей не определен.
Оригинал:
If an array is so large (greater than PTRDIFF_MAX elements, but less than SIZE_MAX bytes), that the difference between two pointers may not be representable as ptrdiff_t, the result of subtracting two such pointers is undefined.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Для массивы символов меньше, чем PTRDIFF_MAX, ptrdiff_t выступает в качестве подписанных аналогом size_t: он может хранить размер массива любого типа и есть, на большинстве платформ, синонимом intptr_t).
Оригинал:
For char arrays shorter than PTRDIFF_MAX, ptrdiff_t acts as the signed counterpart of size_t: it can store the size of the array of any type and is, on most platforms, synonymous with intptr_t).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] См. также

беззнаковое целое число типа возвращаемого sizeof оператора
Оригинал:
unsigned integer type returned by the sizeof operator
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(определение типа) [edit]
byte offset from the beginning of a struct type to specified member
(функция-макрос) [edit]
C++ documentation for ptrdiff_t