C99 agregó un booltipo 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 booltipo 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 bito __bittipo de compilador , los resultados probablemente serían 0, 0, 1, 0 (tratando bitde forma equivalente a un campo de bits sin signo de tamaño 1, o un tipo entero sin signo con un bit de valor).