История изменений
Исправление firkax, (текущая версия) :
Тоже самое можно сказать про код плохо обрабатывающий поведение signed.
Я про то, что корректная обработка unsigned делается проще и понятнее чем signed, и при её реализации меньше шанс о чём-то забыть и допустить баг.
Я про корректные с точки зрения стандарта.
Прекращай демагогию.
__builtin_add_overflow который есть в gcc 3 и clang 3
А в каком-нить другом компиляторе нету.
В любом случае, это не единственная причина предпочитать unsigned. Знаковость так или иначе 1) требует специальной обработки в ряде мест, 2) отжирает на себя диапазон представления полезных положительных чисел на целых бит. Там, где она при этом ничего не даёт взамен - не надо её вводить. Аргументы вида «я не понимаю беззнаковую математику» отвергнем, т.к. умственно отсталым личностям в любом случае нечего делать в Си.
Исходная версия firkax, :
Тоже самое можно сказать про код плохо обрабатывающий поведение signed.
Я про то, что корректная обработка unsigned делается проще и понятнее чем signed, и про её реализации меньше шанс о чём-то забыть и допустить баг.
Я про корректные с точки зрения стандарта.
Прекращай демагогию.
__builtin_add_overflow который есть в gcc 3 и clang 3
А в каком-нить другом компиляторе нету.
В любом случае, это не единственная причина предпочитать unsigned. Знаковость так или иначе 1) требует специальной обработки в ряде мест, 2) отжирает на себя диапазон представления полезных положительных чисел на целых бит. Там, где она при этом ничего не даёт взамен - не надо её вводить. Аргументы вида «я не понимаю беззнаковую математику» отвергнем, т.к. умственно отсталым личностям в любом случае нечего делать в Си.