C-Tutorial
C oder C++ lernen?
Was ist C/C++? Ist C/C++ geeignet für mich? Diese Fragen beantwortet Kapitel 2 der Einführung.
Unterschiede zwischen C und C++
C++ ist Nachfolger bzw. eine Erweiterung von C und wurde von Bjarne Stroustrup in den AT&T-Labs entwickelt. C++ ist zu C abwärtskompatibel, womit sich C-Programme auch mit einem C++-Compiler übersetzen lassen.
Theorie und Praxis können hier aber auseinanderlaufen. Die Programmiersprache C wurde mehrfach standardisiert (siehe Varianten der Programmiersprache C bei Wikipedia), wovon C++ auf dem Standard von 1990 (C90, ISO/IEC 9899:1990) aufbaut. C wurde aber danach noch erweitert. Die nachfolgenden C-Standards (C95, C99) spielen zwar in der Praxis eine untergeordnete Rolle, doch konnten diese Erweiterungen in C++ keine Berücksichtigung finden.
Auf der anderen Seite fanden Erweiterungen, die C++ (!) brachte, ihren Einzug in C-Standards. Es wurden also C++-Sprachelemente in C integriert.
Neben den unterschiedlichen Standards können auch nicht-standardkonforme Implementierungen der C++-Compiler Probleme bereiten.
Was hier kompliziert wirkt, ist in der Praxis aber weniger dramatisch. Ich möchte lediglich darauf hinweisen, dass nicht immer eine 100%ige-Abwärtskompatibilität besteht.
Womit beginnen? C oder C++?
Grundsätzlich: Beides ist möglich. Mit C++ zu beginnen, ist mit Sicherheit aufwendiger und langwieriger (Zeit- und Geduldsproblem) - alleine schon wegen der größeren Anzahl an Sprachelementen. Da es auf Tutorials.at nur ein C-Tutorial (und keines für C++) gibt, hier die Gründe, mit C zu beginnen: :-)
Wie bereits erwähnt, ist C++ als "größerer Bruder" von C, zu diesem rückwärtskompatibel (von kleineren Ausnahmefällen abgesehen). Es stehen also alle C-Sprachelemente auch unter C++ zur Verfügung. Sie lernen beim Umstieg auf C++ im Wesentlichen, was neu hinzugekommen ist, und wofür C++ bessere Lösungen anbietet (Objektorientierte Programmierung). Umgekehrt, wenn Sie zuerst C++ lernen, und dann später doch ein reines C-Programm (das auf einem "reinrassigen" C-Compiler laufen muss) schreiben müssen, müssen Sie erst lernen, was es in C noch nicht gab.
Wenn Sie vor allem beabsichtigen, hardwarenah oder Mikrocontroller zu programmieren, spricht auch mehr für reines C. C-Compiler gibt es für mehr Plattformen als C++-Compiler. Für jeden noch so exotischen Prozessor gibt es meistens einen C-Compiler. Und wenn nicht, dann bleibt oft eh nur mehr Assembler.
Wenn Sie komplett neu in die Programmierung einsteigen (Anfänger), spricht auch viel für eine Sprache mit weniger Sprachelementen, um den Lernenden motiviert zu halten. Sonst geht oft irgendwann der Überblick über das Ganze verloren. Noch ein Punkt für C.
Zum C-Tutorial |