Логические типы данных

Спецификатор типа bool

Спецификатор типа bool используется для объявления в языке C++ логических значений(т.е. истина/ложь).

Ключевое слово true

Ключевое слово true в языке C++ представляет собой логическую константу, имеющую значение "истина".

Ключевое слово false

Ключевое слово false в языке C++ представляет собой логическую константу, имеющую значение "ложь".

Спецификатор типа _Bool

Версия С99 включает тип данных _Вооl, который позволяет хранить значения 1 и 0 (т.е. истина/ложь). _Bool означает целый тип, который отличается от ключевого слова bool, определенного в языке C++. Таким образом, языки С99 и C++ несовместимы по этому типу. Кроме того, в языке C++ определены логические константы true и false, а в версии С99 - нет. Но вместе с тем в версию С99 добавлен заголовок <stdbool.h>, который определяет макросы bool, true и false. Поэтому С/С++-совместимый код можно создать без особых проблем.

Причина того, что в качестве ключевого для версии С99 было определено слово _Воо1, а не bool, состоит в том, что во многих существующих программах уже были определены собственные пользовательские версии слова bool. Поэтому определение логического типа _Вооl позволило избежать приведения уже существующего кода в нерабочее состояние. Однако для новых С-программ лучше включать заголовок <stdbool.h>, а затем использовать макрос bool.