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
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)
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.
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!!!
> 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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.