www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVRStudio switch Anweisung und #define


Autor: Michael N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe da ein Problem mit einer switch-Anweisung in einem 
C-Programm.
Ich dachte man könnte einfach #define's benutzen. Was bei mir aber 
scheinbar nicht funktioniert.
#include <stdint.h>

#define MNU_MAIN 0;
#define MNU_TEMP 1;
 
int main()
{
  uint8_t gActMenu = 0;

  switch(gActMenu)
  {
    case MNU_MAIN:
      // show menus
    break;

    case MNU_TEMP:
      // show temp menu
    break;
  }
}
Das geht nicht. Wenn ich statt der define's einfach 0 und 1 benutze geht 
es ohne Fehler.

../12345.c:13: error: expected ':' or '...' before ';' token
../12345.c:13: error: expected expression before ':' token
../12345.c:17: error: expected ':' or '...' before ';' token
../12345.c:17: error: expected expression before ':' token

Wieso kommen diese Fehler? In der 12345.c steht nicht mehr drin. Das 
oben ist das komplette Programm.

Autor: Sauger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

sagt er dir doch. Mach mal die ; hinter den #define weg.

MfG

Autor: Michael N. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, vielen Dank. Ich muss mich noch ein bisschen umgewöhnen von 
Delphi nach C. Vorher hatte ich auch noch = Zeichen bei den #defines. 
Den Fehler hatte ich selber gefunden.
Habs nur nicht geblickt, weil die #defines in ner anderen Datei waren 
(im eigentlichen Projekt) er aber auf die .c Datei verwiesen hatte.

Aber ich werd mich schon noch an die Syntax und die Compilermeldungen 
gewöhnen. Finde die im Moment noch ein bisschen unübersichtlich.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.