Welcher C++ Compiler vesteht C



  • Im aktuellen C++ Standard steht, dass der C++ Compiler mindestens zu ANSI C von 1990 kompatibel sein muss, aber es ist auch erlaubt, moderneren C-Normen zu folgen.

    VC++ 2003 ist weitestgehend zu den aktuellen C++ und C Normen kompatibel.

    GCC ist ein bisschen besser ausgeruestet.

    Generell gilt: Wenn man als Dateiendung ".c" verwendet, wird ein reiner C Compiler aufgerufen. Nur bei den Dateiendungen ".cpp", ".cxx", ".c++", und ".CC" wird der C++ Compiler aufgerufen.

    Programme wie "gcc" (GNU) und "cl" (Microsoft) sind Frontends, die Anhand der Dateiendung das entsprechende Programm starten.

    Uebrigens: Das Beispiel

    main() { printf( "hello world!\n" ); exit(0); }
    

    ist auch in ANSI C90 bzw. C99 ein Syntax-Fehler (es fehlen bei "main" Argumentliste und Rueckgabetyp). Jedoch sind reine C Compiler meist noch abwaertskompatibel zu den alten K&R-de-facto-Standards aus den 70ern und 80ern. In C++ Compilern ist das nicht erforderlich.

    Ein C++ Compiler muss als Ausgabe keine Binaerdatei erzeugen, er kann auch, wie frueher, nur nach C uebersetzen (oder Pascal oder was auch immer).


Anmelden zum Antworten