Какое значение лучше использовать? Булева истина или целое число 1?

Есть ли в этом смысл или нет?


person Datoxalas    schedule 05.04.2011    source источник


Ответы (3)


Логическое значение true — это логическое значение. Используйте его всякий раз, когда вы хотите указать, что определенное бинарное условие выполнено.

Целочисленный литерал 1 является числом. Используйте его всякий раз, когда вы что-то считаете.

Не используйте целые числа для логических значений и наоборот. Они разные.

Рассмотрим переменную int isEnabled. Конечно, я могу предположить, что 0 и 1 могут быть единственными предполагаемыми значениями для этой переменной. Но с точки зрения языка ничто не мешает мне назначить 4247891. Однако использование логического значения ограничивает допустимые значения true и false. Это не оставляет места для спекуляций.

(С++ int и bools несколько конвертируемы, но обычно это не одобряется)

person Alexander Gessler    schedule 05.04.2011
comment
Boolean также намного меньше с точки зрения памяти. - person Devin Burke; 05.04.2011
comment
Просто чтобы добавить ссылку на то, что говорит Джастин Сатир: целые числа обычно имеют размер 4 байта (32 бита), тогда как логические значения составляют 1 байт (8 бит). Все это зависит от платформы, но я знаю, что для всех основных платформ это правильно. (Да, в идеальном мире логическое значение должно быть 1 бит, однако невозможно ссылаться только на один бит в памяти) - person Adam Casey; 05.04.2011
comment
@Justin Satyr std::vector‹bool› намного меньше по сравнению с std::vector‹int› в других случаях вам необходимо учитывать выравнивание. - person Begemoth; 05.04.2011
comment
Однако не является ли std::vector‹bool› тайно набором битовых флагов. - person Roman A. Taycher; 02.06.2011

Я рекомендую использовать true, если ваш тип логически является логическим. Это будет гораздо более понятно с точки зрения намерений, что сделает ваш код более удобным для сопровождения.

person Reed Copsey    schedule 05.04.2011

Для чего? Используйте логическое значение для логического значения; используйте целое число, когда вы что-то считаете.

person Lightness Races in Orbit    schedule 05.04.2011