Недавно я отвечал на вопрос о неопределенном поведении выполнения p < q в C, когда p и q являются указателями на разные объекты/массивы. Это заставило меня задуматься: C++ имеет такое же (неопределенное) поведение < в этом случае, но также предлагает стандартный шаблон библиотеки std::less, который гарантированно возвращает то же самое, что и <, когда указатели могут быть сравнивать и возвращать последовательный порядок, когда они не могут.
Предлагает ли C что-то с аналогичной функциональностью, которая позволила бы безопасно сравнивать произвольные указатели (с тем же типом)? Я попытался просмотреть стандарт C11 и ничего не нашел, но мой опыт в C на порядки меньше, чем в C++, поэтому я мог легко что-то упустить.