C89, C99 oder C11 für AVR Programmierung?



  • Ich möchte C lernen und dann auch später in die Programmierung von AVR-Mikrocontroller einsteigen. Nun gibt es ja z.B. die C89-Regeln, dass man alle Variablen am Anfang eines Blockes deklarieren muss, wenn ich das richtig in Erinnerung habe. Ist das heute noch nötig, oder sollte man gleich mit C99 oder gar C11 anfangen C zu lernen? Als C-Compiler würde ich dann später den avr-gcc einsetzen, nur bin ich mir unsicher ob da auch alles klappt wenn ich den Regeln für C89 außer acht lassen und gleich mit C99 oder C11 beginne C zu lernen.



  • Wenn du C lernen willst, von dem eine hohe Wahrscheinlichkeit besteht, dass es auch auf dem letzten Ranzcompiler *hust*Visual Studio*hust* kompiliert, dann nimm C89/C90.

    Wenn du nicht bereit bist, Abstriche beim Programmieren zu machen, nimm C99 oder C11.

    Meine Erfahrung zeigt, dass es wichtiger ist, ein gewisses Basis-C zu können und alles nach C90 als "Erweiterung" anzusehen. Aber das ist nur meine Meinung.



  • Der gcc beherrscht C99, entweder strict oder mit Erweiterungen.
    Die Compilererweiterungen sind angenehm, aber eben kein Standard.
    Mit C89 strict bist du maximal portabel, d.h. ohne Änderungen wird dein Programm/Library mit jedem Compiler überall ohne Änderungen compilierbar sein, aber eben nur im strict-Modus, d.h. ohne jegliche Compiler-Erweiterungen (in deinem Fall gcc-Erweiterungen).
    Du bzw. dein Projektleiter muss wissen, was er will.


Log in to reply