boolsche Werte true und false

Gast #239114
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem. Bei verwendung von boolschen Werten wie true und
false gibt mir der gcc folgende Fehlermeldung:

../test.c:81: error: `false' undeclared (first use in this function)

Muss man dafür eine spezielle Header-Datei einbinden oder per #define
selbst definieren?

Gruß Slowflyer
Gast #239115
Lesenswert?
• ▲
▼
Nachtrag:

nachdem ich die beiden Schlüsselwörter true und false nun per define
definiert habe, kennt der compiler das Schlüsselwort bool nicht mehr.
Hm... Sehr eigenartig. Scheinbar kennt er die boolschen Datentypen
standardmäßig nicht. Kann mir da jemand mal einen Tip geben? (Am
liebsten wäre mir, dass eine bool Variable auch nur ein Bit belegt)
Gast #239116
Lesenswert?
• ▲
▼
Bool gibt es halt beim avr-gcc nicht, mach dir nichts draus. Verwende
einfach unsigned char als Datentyp und die Sache passt.
Falls es beim RAM auf jedes Byte ankommt dann musst du dir Bitfelder
von Hand anlegen, dann ist die Sache aber nicht mehr performant.
Gast #239117
Lesenswert?
• ▲
▼
Danke erstmal für die schnelle Antwort. Ich habe zufällig die
Headerdatei stdbool.h gefunden. Damit hat sich das Problem erledigt
(erstmal). Werd es erstaml so probieren, und wenn mir mal der Speicher
langsam ausgehen sollte auf Bitfelder umsteigen.

Nochmals Danke!!!
Moderator Persönliche Seite #239118
Lesenswert?
• ▲
▼
> Ich habe zufällig die
> Headerdatei stdbool.h gefunden.

Genau so schreibt es C99 vor, bool, true und false gibt es nur,
wenn man diesen Header includet -- anders als bei C++, da sind
es builtins (auch beim GCC im C++-Mode natürlich).

Guck aber mal genau hin, mir ist so, als wäre der bool da drin
ein int, also eine 16-bit-Zahl.  Eventuell willst du ja doch
lieber einen uint8_t nehmen und TRUE und FALSE dann selbst als
Makros deklarieren.
Gast #239121
Lesenswert?
• ▲
▼
Die Überlegung mit den 16Bit ist gut. Sizeof gibt bei der stdbool.h 1
zurück. Also kann man davon ausgehen, dass der Bool-Wert ein Byte
belegt. D.h. der Umweg über eigene Definitionen kann man sich sparen.

Danke für die Anregungen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.