C99 agregó un bool
tipo cuya semántica es fundamentalmente diferente de la de casi todos los tipos enteros que existieron anteriormente en C, incluidos los tipos definidos por el usuario y la extensión del compilador destinados a tales fines, y que algunos programas pueden tener "type-def" ed a bool
.
Por ejemplo, dado bool a = 0.1, b=2, c=255, d=256;
, el bool
tipo C99 establecería los cuatro objetos en 1. Si se usara un programa C89 typedef unsigned char bool
, los objetos recibirían 0, 1, 255 y 0, respectivamente. Si se usa char
, los valores pueden ser como se indica arriba o c
-1. Si hubiera utilizado una extensión bit
o __bit
tipo de compilador , los resultados probablemente serían 0, 0, 1, 0 (tratando bit
de forma equivalente a un campo de bits sin signo de tamaño 1, o un tipo entero sin signo con un bit de valor).