Re[10]: Откуда эта лютая любовь к знаковым целым?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.05.20 10:22
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>>>для чего, например, argc в main имеет знаковый тип? В каких случаях он может становиться отрицательным?


N>>Это чисто наследие самых ранних реализаций, не захотели менять тип ради мелочи.


ЕМ>Значения времени/даты в tm, значение смещение в va_list (и приведение результата sizeof к int в va_arg) и подобное — тоже "чисто наследие"?


Уже нет, мне кажется. Именно в struct tm можно было бы хранить и без знака, но зачем, если там значения гарантированно меньше соответствующего максимума даже в исходной 16-битке?

Виндовая SYSTEMTIME, для сравнения, имеет полями сплошные WORD. Они исходили из другой логики.
Но, как только начинается вопрос про то, что даты надо вычитать, уже приходится переводить к знаку (об этом тебе уже написали рядом). Ну и зачем эти лишние конверсии?

Для argc я просто не вижу, зачем его можно было бы уводить в минус (особенно с учётом роли argv[0]). Для компонентов даты и времени этот смысл уже есть.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.