Ich habe gerade Code in C geschrieben und es stellt sich heraus, dass es keinen Boolean/Bool-Datentyp gibt. Gibt es eine C-Bibliothek, die ich einbinden kann, um einen booleschen/bool-Datentyp zurückzugeben?
Wenn Sie einen Compiler haben, der C99 unterstützt, können Sie dies tun
#include <stdbool.h>
Ansonsten können Sie Ihre eigenen definieren, wenn Sie möchten. Je nachdem, wie Sie es verwenden möchten (und ob Sie Ihren Code als C++ kompilieren möchten), kann Ihre Implementierung so einfach sein wie:
#define bool int
#define true 1
#define false 0
Meiner Meinung nach können Sie jedoch auch einfach int
verwenden und Null verwenden, um falsch zu bedeuten, und nicht Null, um wahr zu bedeuten. So wird es normalerweise in C gemacht.
C99 hat zwar einen booleschen Datentyp, aber wenn Sie ältere Versionen verwenden müssen, definieren Sie einfach einen Typ:
typedef enum {false=0, true=1} bool;
C99 hat einen bool
-Typ. Um es zu benutzen,
#include <stdbool.h>
Als Alternative zu James McNellis Antwort versuche ich immer, die Aufzählung für den Bool-Typ anstelle von Makros zu verwenden: typedef enum bool {false=0; true=1;} bool;
. Es ist sicherer, da der Compiler die Typprüfung durchführt und Makro-Erweiterungsrennen eliminiert
C99 führte _Bool
als intrinsischen reinen Booleschen Typ ein. Kein #include
s benötigt:
int main(void)
{
_Bool b = 1;
b = 0;
}
Bei einem echten C99-Compiler (oder höher) sollte der obige Code einwandfrei kompiliert werden.
Wir können den Aufzählungstyp dafür verwenden. Wir benötigen keine Bibliothek . Zum Beispiel
enum {false,true};
der Wert für false
ist 0 und der Wert für true
ist 1.