Типы Bool меньше, чем типы Int, поэтому занимают меньше места в памяти. В зависимости от системы, которую вы компилируете в / для, значение Int может быть 4–8 байтов, тогда как значение Bool составляет 1 байт (как можно увидеть в этой статье MSDN )
Сопоставьте это с некоторыми аспектами KISS и хорошим дизайном программы, и станет понятно, почему лучше использовать bool для хранения переменной, которая будет иметь только 2 значения.
Зачем усложнять вещи объектом, который может хранить широкий диапазон значений, если вы уверены, что вам нужно хранить только 1 из 2 различных значений?
Что происходит в системе, которая использует int, если вы храните там 75? Если вы добавили дополнительные условия
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
или
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
тогда вы прикрыты для этой ситуации. Но если нет, значит нет.
Вы также можете иметь случай (в зависимости от того, как вы изменяете значение int), когда у вас переполнение буфера, и значение «сбрасывается» обратно до 0 или нижней границы вашего int (который может быть где-то в область от -127 до -9,223,372,036,854,775,808, в зависимости от вашей целевой архитектуры ) что тогда происходит в вашем коде?
Однако, если вы использовали bool, вы могли бы использовать что-то вроде этого:
if(continueBool == true)
return true;
else
return false;
Или даже:
return (continueBool== true) ? true : false;
или даже:
return continueBool;
В зависимости от вашего компилятора могут быть оптимизации, которые он может выполнять в коде, который использует Bools для хранения сопоставленных значений true / false. Принимая во внимание, что не может быть оптимизаций, которые он может выполнить для Ints, используемых для хранения сопоставленных значений true / false.
Мы также должны помнить, что C ++ (наряду с C, Assembly и FORTRAN) используется для написания очень эффективного, небольшого и быстрого кода. Таким образом, в этом случае было бы лучше использовать Bool, особенно если вы отмечаете использование переменных, памяти, кэша или процессорного времени.
Похожий вопрос: зачем мне хранить целое число (значение) в float? Ответ: не стоит, потому что нет смысла.
Короче говоря: как ваш учитель / репетитор / лектор / профессор, чтобы обсудить с вами размеры различных типов ценностей (в случае, если вы пропустили это), и почему они важны для разработки программного обеспечения.
Я надеюсь, что это поможет в качестве отправной точки (я также надеюсь, что это не выглядит как педантичный)
int
- сохранить целое число, а цельbool
- сохранить логическое значение (true
илиfalse
). Использованиеbool
IMO отражает его использование гораздо лучше, чем использованиеint
.