Hallo zusammen,
Ich möchte gern ein typ boolean in C definieren und zwar als unsigned int der Länge 1 bit?
unsigned int a:1; dieses Kommando definiert doch ein integer der Länge ein Bit. Kann man dieses kommando ausnutzen und neuen typen boolean zu definieren?
Gruss
Hallo,
als teil einer Struktur ist das durchaus üblich. Als nur 1bit in einem Byte oder int (auch als Struktur) ist es eher ungewöhnlich, aber auch möglich.
Der übliche weg ist aber denke ich, bool als int zu definieren (oder unsigned char falls Speicher ne rolle spielt) und dann nur auf false abzufragen.
typedef int bool;
#define TRUE (1)
#define FALSE (0)
bool checked = TRUE;
// ok
if(checked) do\_something();
// ok
if(checked == FALSE) do\_something\_other();
// genauso ok
if(!checked) do\_something\_other();
// nicht ok, da evt. auch 2, 3 oder 0xffff!
if(checked == TRUE) do\_something\_other();
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]