[C/C++] - Mischung der beiden Sprachen für Programmeffizienz

Noeden

Erfahrenes Mitglied
Ist meine Überlegung richtig, dass ein komplexes Programm auf C basierend und bestimmte Elemente mit C++ (Wie zum Beispiel Klassen) vereinfacht werden Ressourcensparend ist?

Sodass ich die Einfachheit von C-Befehlen mit dem einfacheren Lösungsweg von C++ verbinde ... ich hoffe ihr versteht was ich meine.
 
Warum nicht?

Nur aufpassen, dass du dabei nicht den Überblick verlierst.

Solange man weiß, was man tut, ist das überhaupt kein Problem.

Ich verwende auch Klassen und alles was dazugehört und hab dabei vielleicht zweimal im Leben selber ein cout geschrieben :D
Solange printf auch funktioniert...
 
Du bist ja immer der erste ;)

Lohnt es sich denn auch performance-mäßig oder kann man das einfach nur machen, weil man beide Sprachen "beherrscht" und das dann nach Gusto machen kann.
 
Hi.
Lohnt es sich denn auch performance-mäßig oder kann man das einfach nur machen, weil man beide Sprachen "beherrscht" und das dann nach Gusto machen kann.
Heutige Prozessoren sind so schnell, dass selbst Java bzw. CLR Programme sehr flüssig laufen und man eigentlich nicht bemerkt, dass da noch eine Interpreter / Byte Code Compiler darunter läuft.

Falls es zwischen C und C++ Unterschiede in der Laufzeit gibt sind diese marginal.

Außerdem kannst du in C++ natürlich auch einfach C Funktionen wie z.B. printf et. al. aufrufen. Der Effekt und die Laufzeit sind die gleiche.

Viel wichtiger als die Laufzeit sind aber in der Regel Dinge wie Wartbarkeit und eleganter Code (was im Grunde miteinander zusammenhängt).

Hinzu kommt die Erweiterbarkeit und höhere Generizität bei C++. Falls du fprintf etc. benutzt, ist das meist schneller als die IOStreams zu benutzen, aber man ist limitiert auf FILE Objekte während Funktionen die auf IOStreams (ostream / istream) definiert sind z.B. auch mit Strings (stringstream), Dateideskriptoren (boost::iostreams::file_descriptor_source), memory-mapped Dateien oder Sockets (boost::asio::ip::tcp::iostream) usw. verwendet werden können.

Meiner Meinung nach wiegen die Vorteile von C++ die (evtl.) längere Laufzeit wieder auf.

Eine sinnvolle Kombination von C und C++ wäre z.B. aus Portabilitätsgründen. C++ ist relativ inkompatibel "zu sich selbst" (C++ Bibliotheken von einem Compiler kann nicht mit einem anderen Compiler verwendet werden) und es gibt auch keine Anbindung an andere Sprachen. Da ist es sinnvoll / notwendig eine einfache C Schnittstelle anzubieten (bzw. später einen C-Wrapper zu schreiben) und nur im Hintergrund C++ zu verwenden.

Außerdem weißt du vorher sowieso nicht (und solltest auch keine Vermutungen darüber anstellen -> vorzeitige Optimierung; Knuth) wo in deinem Programm Flaschenhälse sind und kannst auch nichts gezielt optimieren. Falls du aber dein Programm gut strukturiert hast, fällt es dir auch nicht schwer bestimmte Code-Teile durch andere zu ersetzen falls du feststellst dass der alte zu langsam ist.

Gruß
 
Zuletzt bearbeitet:
Zurück