История изменений
Исправление wandrien, (текущая версия) :
Продолжение.
Булев тип
Типы bool8
, bool16
, bool32
и т.п.
Все типы, независимо от размера, имеют одинаковую семантику: все нулевые биты — FALSE, любое иное значение — TRUE. Типы разного размер введены чтобы облегчить задачу согласования с кодом на других ЯП и правилам ABI разных платформ.
Размер типа bool
определяется параметрами целевой архитектуры и опциями компиляции. Компилятор также вправе выбирать произвольный размер для типа bool
там, где это не изменяет результатов, видимых программой.
Автоматическая конвертация в численные типы и обратно отсутствует, но приведение типа можно выполнить явно. При приведении типа значение FALSE преобразуется в 0, и TRUE преобразуется в 1 в случае, если число 1 может быть представлено в целевом типе. (Для типов с фиксированной точкой это не всегда возможно.) Если 1 не может быть представлено в целевом типе, вместо него используется максимальное для целевого типа значение.
Исходная версия wandrien, :
Продолжение.
Булев тип
Типы bool8
, bool16
, bool32
и т.п.
Все типы, независимо от размера, имеют одинаковую семантику: все нулевые биты — FALSE, любое иное значение — TRUE. Типы разного размер введены чтобы облегчить задачу согласования с кодом на других ЯП и правилам ABI разных платформ.
Размер типа bool
определяется параметрами целевой архитектуры и опциями компиляции. Компилятор также вправе выбирать произвольный размер для типа bool
там, где это не изменяет результатов, видимых программой.
Автоматическая конвертация в численные типы и обратно отсутствует, но примедение типа можно выполнить явно. При приведении типа значение FALSE преобразуется в 0, и TRUE преобразуется в 1 в случае, если число 1 может быть представлено в целевом типе. (Для типов с фиксированной точкой это не всегда возможно.) Если 1 не может быть представлено в целевом типе, вместо него используется максимальное для целевого типа значение.