Читая сообщения в Интернете, связанные с size_t
и ptrdiff_t
, я хочу подтвердить следующее:
если максимальный размер массива меньше 1/2 * (максимальное число, представимое с помощью size_t)
, я могу безопасно использовать ptrdiff_t
и проверить относительные расстояния между двумя указателями на один и тот же объект? (Поскольку я говорил о массиве, " указатели на один и тот же объект "означает" указатели на один и тот же массив ").
если я хочу объявить переменную, которая может представлять смещение от другого указателя, мне лучше объявить ее как тип ptrdiff_t
?
Как вывести переменные типа size_t
и ptrdiff_t
в C и C ++? Правильно ли следующее: Строка межплатформенного формата для переменных типа size_t?
is uintptr_t
- это просто другое имя для size_t
ИЛИ оно должно использоваться как отдельный тип из size_t
?
is ssize_t
и intptr_t
другие имена для ptrdiff_t
ИЛИ его нужно использовать по-другому?
I я начинаю использовать gcc на Ubuntu. Я только что узнал об этих типах, когда использовал чужие коды.
ДОБАВЛЕНО: Я действительно хочу иметь возможность использовать отрицательные смещения. И какая разница в использовании uintptr_t
и intptr_t
?