Регистрация
7 Апр 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
Зачем Страуструп добавил в Си с плюсами тип данных bool? А затем и в C99 определили _Bool. Всё ведь было предельно просто:
FALSE == 0
TRUE != 0
Зачем?! Дело ведь точно не в экономии памяти, и не в быстродействии. Единственное, что изменилось, так это то, что теперь есть новая сигнатура для функций и методов, но а толку от этого?
 
Для ясности - где логические, а где арифметические данные. Тем более, что есть тонкости: булевские значения в разных случаях кодируются то байтами, то отдельными битами.
 
Этот трюк нужен был в в 1972 году - для повышения производительности кода ценой снижения надёжности этого кода. Но чем больше кода, тем больше ошибок, вызванных подобными трюками. И в современном мире цена крайне слабой типизации С/C++ слишком высока. Так что bool - один из способов хоть как-то увеличить надёжность этих языков.
 
Добавление нового однобайтового типа точно не снизит расход памяти и быстродействие, сигнатуры функций и методов поддерживаются и старые наровне с новыми. Т. е. потерь никаких, а уровень языка стал выше.
 
Назад
Сверху