Прочитав сообщения, связанные с size_t
и ptrdiff_t
, я хочу подтвердить следующее:
-
если максимальный размер массива меньше
1/2*(max number represent-able by size_t)
, я могу безопасно использоватьptrdiff_t
и проверить относительные расстояния между двумя указателями на один и тот же объект? (Поскольку я говорил о массиве, "указатели к тому же объекту" означает "указатели на один и тот же массив" ). -
если я хочу объявить переменную, которая может представлять смещение от другого указателя, я лучше объявляю его как тип
ptrdiff_t
? -
Как вывести переменные типа
size_t
иptrdiff_t
в C и С++? Правильно ли следующее: Строка формата кросс-платформенной для переменных типа size_t? -
is
uintptr_t
- это просто другое имя дляsize_t
ИЛИ оно должно использоваться как отдельный тип изsize_t
? -
есть
ssize_t
иintptr_t
другие имена дляptrdiff_t
ИЛИ его нужно использовать по-другому?
Я начинаю использовать gcc на Ubuntu. Я просто узнал об этих типах при использовании кого-то else.
ADDed: Я хочу иметь возможность использовать смещения отрицательные. И любая разница в использовании uintptr_t
и intptr_t
?