O C99 adicionou um bool
tipo cuja semântica é fundamentalmente diferente daquela de quase todos os tipos inteiros que existiam antes em C, incluindo tipos definidos pelo usuário e de extensão do compilador destinados a esses fins, e que alguns programas podem ter "tipos def" parabool
.
Por exemplo, dado bool a = 0.1, b=2, c=255, d=256;
, o bool
tipo C99 definiria todos os quatro objetos como 1. Se um programa C89 typedef unsigned char bool
fosse usado , os objetos receberiam 0, 1, 255 e 0, respectivamente. Se usado char
, os valores podem ser os acima, ou c
pode ser -1. Se ele tivesse usado uma extensão bit
ou __bit
tipo de compilador , os resultados provavelmente seriam 0, 0, 1, 0 (tratando de bit
maneira equivalente a um campo de bits não assinado do tamanho 1 ou um tipo inteiro não assinado com um bit de valor).