GOTO

Gast #237741
Hallo,

Vorgeschichte:
Das Programm läuft normal an und kann während der Laufzeit durch den
Anwender in verschiedenen Modi betrieben werden. Diese erfordern z.T.
Reinitialisierungen des AVRs, die am vor der Hauptschleife im main ()
stehen. Am Beginn der main habe ich mir ein Label definiert.
Erkennt eine Funktion in einer anderen Datei einen Moduswechsel soll
dorthin gesprungen werden.

Problem:
main.c:10: warning: label `restart' defined but not used
communication.c:209: error: label `restart' used but not defined

Wie macht man ein Label global bekannt?

Danke,
Alex
Gast #237742
OK, also sowas scheint prinzipbedingt nicht zu funktionieren, Sprünge
sind nur lokal in Funktionen erlaubt. Eigentlich auch logisch, wenn man
die Arbeitsweise eines Compilers berücksichtigt :)
#237744
Könntest du nicht um die Hauptschleife herum noch eine Schleife bauen?

 main()
{
  while (1)
  {
    init(modus); // hier initialisierst du
    while (1) // Hauptschleife
    {
    ...

    if (moduswechsel)
     continue;
    }
  }
} // Ende main

Mit dem continue springst du aus der inneren Schleife raus.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.