Knihovna stdbool.h

Standardy jazyka C

V době své největší slávy existoval standard jazyka C s označením c89. Tento standard neznal booleovské hodnoty a typy. Proto spousta funkcí, které vracejí informaci pravda/neprava, mají definovanou návratovou hodnotu jako typ int, viz Boolovské datové typy. Tím se nenechte zmást a při psaní vlastních funkcí raději používejte bool.

Novější standard c99 zavedl knihovnu <stdbool.h>. Standard c99 toho zavedl nového více. Ne všechno z tohoto standardu už bylo překladači implementováno, ale podpora tohoto standardu je všeobecně na slušné úrovni.

Nejnovější standard jazyka C se nazývá C11. Novinky z tohoto standardu (z roku 2011!) nejsou ještě překladači moc podporovány (já se třeba těším na to, až bude většinou překladačů podporována knihovna <threads.h>, která umožňuje psát více vláknové aplikace).

Booleovské typy a hodnoty

Knihovna <stdbool.h> definuje nový datový typ _Bool. K němu definuje “alias“ v podobě makra bool. Doporučuji vám používat spíše toto makro, vypadá přeci jen lépe :).

Datový typ bool může nabývat dvou hodnot definovaných v <stdbool.h>: true (pravda) a false (nepravda).

Většinou bude _Bool implementován jako int, nebo se bude přinejmenším automaticky přetypovat int na bool, takže pořád můžete do proměnné typu bool přiřazovat 1 nebo 0.

Hlavním důvodem zavedení booleovského typu je zvýšení čitelnosti zdrojového kódu.

Příklad jste mohli vidět například v kapitole funkcích s proměnlivým početem argumentů, nebo v příkladu dynamic3.c v kapitole o dynamické alokaci paměti.

Komentář Hlášení chyby
Created: 24.6.2014
Last updated: 24.6.2014