C99 додав boolтип, семантика якого принципово відрізняється від того, що стосується майже всіх цілих типів, які існували раніше в C, включаючи визначені користувачем типи та розширення компілятора, призначені для таких цілей, і які деякі програми можуть мати "type-def" ed до bool.
Наприклад, заданий тип bool a = 0.1, b=2, c=255, d=256;C99 boolвстановив би всі чотири об'єкти на 1. Якщо використовується програма C89 typedef unsigned char bool, об'єкти отримали б відповідно 0, 1, 255 та 0. Якщо він використовується char, значення можуть бути такими, як вище, або cможуть бути -1. Якби він використовував компілятор-розширення bitабо __bitтип, результати, ймовірно, будуть 0, 0, 1, 0 (обробляючи bitспособом, еквівалентним неподписаному бітовому полі розміром 1, або непідписаним цілим числом з одним бітом значення).