Ich habe mir einen enum Datentyp wie folgt erstellt:
1 | typedef enum {
|
2 | SMS_OK, // OK von Mobiltelefon empfangen
|
3 | SMS_ERROR, // ERROR von Mobiltelefon empgangen
|
4 | SMS_MSG_DECODE, // Textnachricht eingegangen, decodiert und in SMS_DECODE_DATA_TYPE Struktur gespeichert
|
5 | SMS_INCOMING_RING, // eingehender Anruf
|
6 | SMS_CANCEL_RING, // eingehender Anruf wurde abgewiesen
|
7 | SMS_REQUEST_TELNR, // Telefonnummer des eingehenden Anruft wurde abgefragt
|
8 | SMS_RETRIEVE_TELNR, // Anrufer wurde abgewiesen, Telefonnummer ermittelt und korrekt mit sms_telnr verglichen
|
9 | SMS_IDLE, // empfangene Zeichenkette wurde nicht in sms_state_machine "gefunden" (kein Eintrag)
|
10 | } SMS_MSG;
|
Meine Funktion mit der State Machine hat dieses enum nun als
Rückgabewert:
1 | extern SMS_MSG sms_state_machine(void);
|
Ich kann nun also in der Funktion sms_state_machine Rückgabewerte der
Form "return SMS_OK" nutzten und würde dementsprechend eine 0
zurückerhalten.
Ist es nun möglich, die Rückgabewerte auf diesen enum Typ zu
beschränken??
Mein Problem ist, dass "return SMS_OK123" keine Fehlermeldung oder
Warning bringt, obwohl der Compiler SMS_OK123 gar nicht kennen kann. Ich
brauche eigentlich nur eine Felermeldung/Warning, damit ich weiss, dass
ich mich verschrieben habe.
Ich nutzt zur Zeit AVR Studio 4.17 Build6 66 und WINavr-20090313.