C/C++ Einsatzgebiet ?



  • Die Frage geht an Leute die einwenig mehr Ahnung haben !

    Also es geht darum, dass ich zurzeit ein etwas größeres Projekt zum Spaß schreibe,
    bei dem das Programm im Hintergrund läuft.

    Nun stellt sich die Frage, sollte ich die ganzen Klassen in C++ beibehalten,
    die aber sehr viel Leistung benötigen oder wäre es vorteilhaft das in C zu implementieren, da anscheined C sehr viel weniger an Resourcen beansprucht.

    Dann habe ich gelesen, dass z.B bei der dynamischen Speicherreserverierung dieses new(C++) besser als malloc(C) ist. In meinem Fall z.B _Klasse *p = new _Klasse; usw.

    Fals C befürwortet wird,
    Was ist an diesem TinyC-Compiler so schlecht hat der keine 64bit Unterschützung ?

    Bin mal gespannt wie ihr das seht.



  • C beansprucht nicht prinzipiell mehr Ressourcen.

    new ist typsicherer als malloc

    hat der keine 64bit Unterschützung

    Das ist ja bei normalen Anwendungen nicht das Hauptbewertungskriterium, oder?


  • Mod

    Wir werden das so sehen, dass der Thread wahrscheinlich gleich geschlossen wird. Den Thread gibt es etwa 1x pro Woche und es artet immer in einen Flamewar aus. Du kannst aber leicht in diesem Unterforum alte Threads zum Thema finden.

    Mein Ratschlag: C++ ist nicht inhärent langsamer als C. Es ist ganz egal, ob du etwas objektorientiert oder imperativ programmierst. Wenn das Programm das gleiche macht, dann kommt auch ein genau gleich schnelles Programm am Ende raus.

    Der Unterschied ist, dass in C++ ein Anfänger leicht Dummheiten machen kann, die dann massiv Performance kosten. Wegen des höheren Abstraktionsgrades sieht er nämlich nicht, dass sein Programm an einigen Stellen rechnet, obwohl er das gar nicht will. Diesen höheren Abstraktionsgrad hat man in C nicht, was aber wiederum ein Nachteil bei der Entwicklung ist.

    Bjarne Stroustrup sagte einmal sinngemäß: "In C kann man sich leicht ins Bein schießen. In C++ ist es schon schwerer, aber wenn, dann ist das ganze Bein weg !". Ich denke, damit hat er Recht.



  • IEFMC schrieb:

    Die Frage geht an Leute die einwenig mehr Ahnung haben !

    also nicht an mich, aber ich dränge mich nun mal gerne auf 😉

    IEFMC schrieb:

    Also es geht darum, dass ich zurzeit ein etwas größeres Projekt zum Spaß schreibe,
    bei dem das Programm im Hintergrund läuft.

    das versteh ich nicht, sollte doch eigentlich keine rolle spielen.

    IEFMC schrieb:

    Nun stellt sich die Frage, sollte ich die ganzen Klassen in C++ beibehalten,

    natürlich es wird eher von c nach c++ portiert

    IEFMC schrieb:

    die aber sehr viel Leistung benötigen oder wäre es vorteilhaft das in C zu implementieren, da anscheined C sehr viel weniger an Resourcen beansprucht.

    das kann man so pauschal immer nicht sagen, es ist die leistung des programmierers, mit den gegebenen mitteln das beste raus zu holen, die richtigen datenstrukturen zu wählen usw.

    IEFMC schrieb:

    Dann habe ich gelesen, dass z.B bei der dynamischen Speicherreserverierung dieses new(C++) besser als malloc(C) ist. In meinem Fall z.B _Klasse *p = new _Klasse; usw.

    naja also auf jeden fall ist das (new) der c++ stil. was mich mal interresieren würde, ob "new" einen null pointer liefern kann, (bzw. ob eine exception auftreten kann, o.ä., da in fast allen code snippets, die ich bisher gesehen hab das nicht getestet wurde)

    IEFMC schrieb:

    Fals C befürwortet wird,
    Was ist an diesem TinyC-Compiler so schlecht hat der keine 64bit Unterschützung ?

    tcc hat seine stärken, und schwächen, er ist eben nicht so ausgereift, wie der gcc bzw. hat nicht die breite unterstützung, dafür scheint er schneller zu kompilieren, was sich evtl. negativ auf die code qualität auswirkt. ich würde ihn also eher für einen jit-fork mißbrauchen, statt realen code damit zu kompilieren

    lg lolo



  • Ok, Vielen Danke nochmals.

    Bin leider neu hier,
    denke mal du hast aber recht und meine Frage hat sich beantwortet.



  • SeppJ schrieb:

    ... und es artet immer in einen Flamewar aus.
    ...

    Echt? Na sowas! 😮
    Fricky ist doch gar nicht mehr da?! 😕
    😃



  • noobLolo schrieb:

    naja also auf jeden fall ist das (new) der c++ stil. was mich mal interresieren würde, ob "new" einen null pointer liefern kann, (bzw. ob eine exception auftreten kann, o.ä., da in fast allen code snippets, die ich bisher gesehen hab das nicht getestet wurde)

    Exception thrown on failure allocating memory
    scheint so, als sitzen die ganzen c++'ler an dicken maschienen wo ihnen noch nie der speicher aus gegangen ist, das wär auf einem embed system sicher öfter mal vor gekommen (da solls ja auch gelegentlich kein malloc geben und dann gibts auch kein new oder etwa doch 😕 ), daher wird da auch fast immer ansi c verwendet 😉

    lg lolo


  • Mod

    Big Brother schrieb:

    SeppJ schrieb:

    ... und es artet immer in einen Flamewar aus.
    ...

    Echt? Na sowas! 😮
    Fricky ist doch gar nicht mehr da?! 😕
    😃

    Also der letzte Thread (nur 7 Threads unter diesem mit fast dem gleichen Titel) ist bereits nach einer handvoll beiträgen entgleist.



  • noobLolo schrieb:

    ... embed system

    es heißt embedded system 🙄



  • Nimm ruby/python, implementiere die rechenlastigen teile in C, vergiss C++.

    Alle nachfolgenden Antworten sind Trolle, die dir zu C++ raten werden. Dabei wird dir jeder vernünftig denkende Mensch von C++ abraten. Denn C++ st sowas von 1997.



  • Ruby ist sowas von 1995. Nimm C++0x.



  • IEFMC schrieb:

    Also es geht darum, dass ich zurzeit ein etwas größeres Projekt zum Spaß schreibe,

    Was für eins?



  • Einen Taschenrechner? 😃



  • Diese Threads bringen doch nichts. Die werden nur von Trollen wie mnan, emp fehler und volkard kaputtgemacht :p



  • Wie wärs, wenn solche Threads Routinemäßig geschlossen werden?

    Obwohl, nagut, dann geht Tradition verloren^^


Anmelden zum Antworten