Hallo!
Für die Ansteuerung eines GLCD möchte ich eine Funktion schreiben, die
variable Argumente hat.
Bis dahin bin ich gekommen:
1 | void message_center(char* string, uint8_t ver, ...)
|
2 | {
|
3 | uint16_t fcolor, bcolor;
|
4 |
|
5 | va_list vlist;
|
6 | va_start (vlist, ver);
|
7 |
|
8 | try
|
9 | {
|
10 | fcolor = va_arg (vlist, uint16_t); // wenn fcolor benutzt wurde und uint16_t ist, dann ist alles OK
|
11 | }
|
12 | catch( )
|
13 | { // ist fcolor fehlerhaft oder wurde nicht angegeben, dann Standardwert setzen
|
14 | }
|
15 | // Fehlerbehandlung von bcolor
|
16 | bcolor = va_arg (vlist, uint16_t);
|
17 |
|
18 | va_end (vlist);
|
19 |
|
20 | // weiterer Code
|
21 | // Verarbeitung von fcolor und bcolor
|
22 | }
|
Die Funktion soll folgendermaßen aufgerufen werden:
1 | message_center(char* string, uint8_t ver, [uint16_t fcolor, [uint16_t bcolor]])
|
Mein Problem ist try und catch. Ich habe nur wenig Literatur gefunden.
Welche Bibliothek muss ich einbinden, um try benutzen zu können?
Gibt es vielleicht eine einfachere Möglichkeit, um optionale Argumente
zu verwenden?
Gruß
Guido