Ich bin etwas ratlos. Ich versuche zu verstehen, wie diese Funktion
angewendet werden soll:
ErrorStatus RTC_DeInit(void);
ErrorStatus ist ja kein qualifier, wie ich es sonst kenne. Kann mir das
jemand erklären?
typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
> ErrorStatus ist ja kein qualifier, wie ich es sonst kenne. Das ist das das wo zurückkommt als Ergebnis. > Kann mir das jemand erklären? Jedes x-beliebige Buch über C.
Paul schrieb: > ErrorStatus RTC_DeInit(void); > > ErrorStatus ist ja kein qualifier wieso Qualifier? Wo soll da ein Qualifier im Spiel sein? ErrorStatus ist ein Datentyp wie jeder andere, zb int, oder double. Diese Funktion liefert dann eben keinen int oder double sondern einen ErrorStatus. Und das wiederrum ist ein enum, wie du ja selbst angegeben hast. Ev. doch mal einen Blick in ein C-Buch riskieren?
Jo. Danke für die Antworten. Habe es inzwischen selber kapiert. Bin halt ein Noop ...
Noop schreibt man mit b am ende, du noob :)
Paul schrieb: > typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; Die Definition für "SUCCESS" ist Nonsense. Schreib das besser so:
1 | typedef enum { |
2 | ERROR, SUCCESS |
3 | } ErrorStatus; |
Die beiden sich ergebenden Werte (0 für "ERROR", 1 für "SUCCESS") sind wohl definiert und entsprechen komplett dem kryptischen Ausrufezeichenhumbug da oben. (Ich weiß, kommt sicher nicht von dir, aber da wollte jemand wohl ganz besonders "flexibel" sein und hat eine Definition verbrochen, die letztlich nur besonders kompliziert ist, ohne irgendeinen wirklichen Gewinn an "Flexibilität" zu haben.)
Jörg Wunsch schrieb: > Die Definition für "SUCCESS" ist Nonsense. Nicht unbedingt. Mancher verwendet eben für SUCCESS TRUE und mancher FALSE. Beides hat seine Berechtigung. TRUE ist logischer, FALSE erlaubt den Fehler genauer zu spezifizieren. Wenn ich LEDs gegen VCC habe, schreibe ich auch:
1 | #define LED_ON 0
|
2 | #define LED_OFF !LED_ON
|
Und wenn sich die Schaltung ändert, muß ich nur ein Define ändern. Z.B. ich teste auf dem STK500, im Gerät sind die LEDs aber gegen GND.
Peter Dannegger schrieb: > Und wenn sich die Schaltung ändert, muß ich nur ein Define ändern. Naja, das ist ein lahmes Argument, da die zwei Zeilen ja ohnehin hintereinander sind. ;-) In aller Regel steckt da eher die Unsicherheit dahinter: "ich weiß doch gar nicht, welchen Wert die logische Negation von 0 bei einem anderen Compiler ergibt", obwohl eben dieser Wert ganz klipp und klar als 1 definiert ist.
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.