Re[3]: Откуда эта лютая любовь к знаковым целым?
От: Erop Россия  
Дата: 11.05.20 07:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну вот я читаю код, и вижу там "int NumberOfElements". Что я должен думать об этой переменной? Судя по названию, она содержит количество элементов чего-либо. Судя по типу, она может принимать отрицательные значения. Как это улучшает читабельность?


Ну, например так что разность двух количеств элементов -- знаковое число...

ЕМ>Исходно в C не было логического типа, но "для улучшения читабельности" считалось естественным вводить синоним boolean или bool. А для чего, собственно? Чего для этого не хватало в int?

Конкретно в было модно
#define BOOL int
но аналогом было бы
typedef int elements_count_t;
делать или, как я уже предлагал
typedef IntRange<1, INT_MAX>::Type elements_count_t;


ЕМ>Еще более показательная хрень случилась с массовым использованием signed char для символьных/строковых операций. Когда вышли за пределы ASCII, внезапно оказалось, что для проверки вхождения символа в кодовый интервал нельзя использовать вроде бы естественные сравнения. Хотя это было очевидно с самого начала.


Да, это пример более интересный. Потому, что это редкий случай, когда дополнительный старший бит важен. Тем не менее, обычно используют кодировку о -128 до 127... Но это так по историческим причинам.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.