Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
C vs C++

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
axeljaeger
Gast





BeitragVerfasst am: 22. März 2002 20:33   Titel: C vs C++

ist ein Programm, das in reinem C geschrieben ist, schneller, als ein äquivalentes C++ Programm?
 

Descartes
Gast





BeitragVerfasst am: 22. März 2002 20:46   Titel: Re: C vs C++

lies dir mal diesen Thread durch ("Einen String umdrehen")
http://www.pl-forum.de/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=004&Post=250

im 4.-letzten Posting von unten ist eine ASCII Grafik das die Laufzeiten darstellt.
Es werden drei Versionen (C++ mit inline/template; C++ Version eines C Proggies; C Programm) ein und der selben Funktion (String umdrehen) verglichen.

Vielleicht nicht allgemeingültig aber für diesen einen Anwendungsfall doch ganz überraschend, dass die C++ Version mit inline/templates laufzeittechnisch ein "stabileres" Verhalten zeigte als die reine C Version.
 

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 23. März 2002 0:16   Titel: Re: C vs C++

Hi!

> ist ein Programm, das in reinem C geschrieben ist, schneller, als ein äquivalentes C++ Programm?

Der C-Standard schreibt keine bestimmte Geschwindigkeit vor. Der C++-Standard im Moment auch nicht. *eg* Die Frage ist daher schon falsch gestellt. Welches Programm schneller ist, hängt vom konkreten Programm und dem konkreten Compiler ab.

Cheers,
GNU/Wolfgang

PS: Mein Lieblingslink zu C++: http://www.progsoc.uts.edu.au/~geldridg/cpp/cppcv3/
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 23. März 2002 14:37   Titel: Re: C vs C++

Hi,

wie das Beispiels der Strings zeigt, kann C++ effizienter sein als C. Dahinter steckt natürlich das Prinzip der Lazy Evaluation, aber es gibt natürlich keinen Grund, das in C nicht genauso zu machen.

Es gibt zweifellos einen gewissen Overhead bei C++, insbesondere bei virtuellen Funktionen und bei "verborgenen" Konstruktor- und Destruktoraufrufen von temporären Objekten. Das dürfte zwischen 0 und 5% Zeit kosten.

Ganz übel kann es aussehen, wenn man Exceptions verwendet. Das kann nach Scott Meyers um die 10% kosten. Es scheint wenig empfehlenswert sein, überhaupt Exceptions einzusetzen.

Wenn man überhaupt keine Klassen verwendet, ist die Performance von C und C++ exakt gleich.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

axeljaeger
Gast





BeitragVerfasst am: 23. März 2002 17:36   Titel: Re: C vs C++

Ich wollte eigentlich wissen, ob es evtl. schneller ist, keine Klassen, sondern Strukturen zu verwenden, und statdessen die Methoden, die eigentlich in der Klasse wären auszulagern.
 

Michael Zwick
Gast





BeitragVerfasst am: 27. März 2002 12:23   Titel: Re: C vs C++

@axeljaeger

Du wirst jetzt bestimmt den Kopf schütteln, aber es stimmt:
Eine Struktur (struct) ist auch so etwas wie eine Klasse (class). In beidem kannst du Methoden und Attribute public, private und protected deklarieren.
Der einzige Unterschied zwischen struct und class zeigt sich beim Vererben.
Wenn du du eine class vererbst, so wird standardmässig private vererbt.
Wenn du einen struct vererbst, wir standardmässig public vererbt. Das ist alles.

Du kannst also in structs auch Methoden schreiben, ehrlich!!!!
Deshalb ist es unerheblich, ob du Klassen oder Strukturen verwendest. Du gewinnst kein bisschen Geschwindigkeit dadurch.

Gruss Michael
 

axeljaeger
Gast





BeitragVerfasst am: 27. März 2002 18:54   Titel: Re: C vs C++

Was ist dann der Unterschied zwischen C++ und C, wenn man einfach ein kleines Skript schreibt, das "struct" durch "class" ersetzt? Ich hab mal gehört, das einzig wirklich neue an C++ sind Konstruktoren. Das Thema hatte mich nur interessiert, weil es mal in der Chip zu Evolution hies: "Das Programm läuft angenehm schnell, das es in großen Teilen in C geschreiben ist"
 

Labba
Gast





BeitragVerfasst am: 28. März 2002 17:33   Titel: Re: C vs C++

In solchen Zeitschriften aka "Chip" wird größtenteils nicht zwischen C/C++ unterschieden, sondern veralgemeinert.
 

axeljaeger
Gast





BeitragVerfasst am: 29. März 2002 9:44   Titel: Re: C vs C++

die haben also nicht zwischen C und C++ unterschieden, sondern zwischen anderen Programmiersprachen und C/C++, wie etwa Java oder ähnliches?
 

arni
Gast





BeitragVerfasst am: 29. März 2002 13:31   Titel: Re: C vs C++

C++ hat natürlich noch einige andere Zusätze zu "C" z.B. das man auch Referenzen anstelle von Zeigern nutzen kann.
Entscheidend ist aber vielmehr das der Compiler auch eine genaue Typenprüfung vornehmen kann, was bei OO unter C (mit generischen Zeigern) nicht machbar ist.
In Sachen Performance nehmen sich aber C und C++ nichts (soweit man keine Klassen verwendet).
Inwieweit der höhere "Komfort" bei C++-Klassen einen Performanceverlust rechtfertigt, kann Wolfgang am besten erklären ;-P
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy