Gibt es in C den Datentyp Boolean?
-
Hallo,
gibt es in C den Datentyp Boolean? Ich habe mal einen Test geschrieben:#include <stdio.h> int main() { bool a; a = 1; printf("Wert a: %d\n", a); getchar(); return 0; }
Ergebnis: Funktioniert! Auch mit 0! Aber warum kann ein bool z.B. den wert 255 annhemen und bei printf kommt dann 1 raus?
-
Seit C99 gibt es in C einen Boolean-Typ. Das dazugehörige Keyword* ist _Bool. In <stdbool.h> müssen zudem Makros definiert sein, welche die (übliche) Schreibweise bool erlauben.
Dass Du einem bool auch den Wert 255 (oder andere) zuweisen kannst und diese trotzdem nur 0 oder 1 sind liegt natürlich daran, dass bool eben nur diese beiden Werte annehmen kann. Aus 0 wird 0 (boolean), aus allem !=0 wird 1 (boolean).
* Dass in unseren feinen [cpp]-Tags das bool trotzdem blau hinterlegt wird, ist Schuld des C++-Parts. In C ist bool _kein_ Keyword.