Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А насколько часто нужно повторять от N до нуля включительно? По-моему, это весьма частный случай, встречается очень редко. Какие есть типовые случаи?
От нуля до N-1. На беззнаковых такой перебор записывается довольно неестественно.
Знак это дополнительный маркер, что мы вышли за диапазон в другую сторону.
ЕМ>Лично я с самого начала своей практики на C/C++ (начало 90-х) использую для счетчиков, количеств, размеров и прочего только беззнаковые. Случаев, подобных упомянутому, или неочевидных ошибок за это время были единицы. А вот проблем и глюков из-за бессмысленных преобразований туда-сюда, по причине знаковости функций CRT и API — сотни. Что я все это время делал не так?
А не надо было преобразовывать, надо было всё делать знаковым.
Ссылку на Степанова пока не помню, постараюсь найти.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте