Ich bekomme folgende Meldung beim compilieren:

Gast #274662
Hallo zusammen,

wenn ich kompiliere, (ich arbeite mit AVR-Studio und dem darin
integrierten WINAVR-Compiler) immer die Fehlermeldung:

../vaseb.c:8: warning: control reaches end of non-void function

Tatsächlich handelt es sich lediglich um ein paar Testzeilen:
#include <avr/io.h>
int main(void)
{
   DDRA = 0xFF;
   PORTA = 0xFF;
}

Kann mir bitte jemand, woran das liegt ?

Danke und Grüße

popi
Gast #274663
Deine void Funktion hat einen Rückgabewert vom Type INT.
ALso musst Du einen Wert vom Type Int am Ende der Funktion
zurückgeben!

return 0;

in der Regel gibt man einen Wert zurück, der angibt, ob die Funktion
fehlerfrei war 0 für fehlerfrei, 1 für fehler XY, 2 für fehler XYZ und
so weiter, oder anders ;-)
Gast #274665
... nur ohne Betriebssystem tut sich die main() schwer wohin
zurückzukehren. Auf einem uC sollte sie besser als

void main()

definiert sein.

Gruss,
rweber
Gast #274666
.... wobei der gcc dann rummault:
warning: return type of `main' is not `int'

Also doch ein return x reindaengeln, nur damit der Compiler Ruhe gibt.
Gast #274667
Wenn Euch die Meldung stört bzw. der unnötige return:

Einfach mit der GCC Option -ffreestanding compilieren und
main als void definieren.

Gruß, Marcus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.