C89 so beliebt?!



  • Wieso wird in neuen Projekten noch immer C89 verwendet?
    Die C99(C1X mal ganz abgesehen) Features sind doch recht nett.

    Sind die 2 Inkompatibel miteinander? Damit meine ich, dass wenn man den Code nach C99 portieren will sehr viel aendern muss?

    Danke


  • Mod

    Es gibt tatsächlich noch einen gewissen großen Compilerhersteller (*Microsoft*hust*), der nur C89 kennt und zu dem will man eben kompatibel bleiben.

    edit: Und C99 ist übrigens 100% abwärtskompatibel.



  • Wenn sie gleich wären, was wäre dann der Sinn von C99 gewesen?
    C89 wird dann genommen, wenn man Wert auf MAXIMAL mögliche Portabilität legen will oder man gar nicht anders kann, weil für die Zielplattform nur ein C89 Compiler vorhanden ist.
    Jedes strikt ANSI C89 konforme Programm ist per se portabler als ein strikt konformes C99 Programm.
    "ganz nett" mögen sie manchmal sein, die VLA und deren Einladung zum unbehandelbaren Stacküberlauf sind aber bestimmt nicht "ganz nett" sondern fördern die Faulheit der Entwickler, sich um effiziente Speicher- und deren Fehlerbehandlung herumzudrücken.
    Wenn man im Zweifel ist, nimmt man eben "sicherheitshalber" C89 und nicht C99.


Anmelden zum Antworten