LINUX.ORG.RU

История изменений

Исправление 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 не может быть представлено в целевом типе, вместо него используется максимальное для целевого типа значение.