c++ in c wandeln



  • moinsen alle miteinander 🙂

    ich hab da mal ne' klitze kleine frage.

    c++ ist doch ein aufsatz auf c (soviel weiß ich 😉 )
    der compiler wandelt c++ in c um und compiliert erst dann.
    ist es möglich, diese umwandlung von c++ nach c anzusehen???

    im klartext: ich will die c datei einer umgewandelten c++ datei ansehen.

    compiler: djgpp, mingw, vc6.

    mfg KoF



  • Äh, nein, so ist das nicht 🙄
    C++ ist zwar ne Erweiterung, aber es ist auch eine
    eigenständige Sprache. C ist Kompatibel zu C++, da
    der Sprachumfang teil von C++ ist, allerdings kannst
    du in C++ dinge machen, die du in C nicht ohne weiteres
    abbilden kannst, bzw. wesentlich mehr aufwand dafür
    treiben musst.

    Und der Compiler wandelt C++ nicht in C vor dem Kompilieren um!

    Devil



  • KoF schrieb:

    moinsen alle miteinander 🙂

    moin.

    ich hab da mal ne' klitze kleine frage.

    das ist gut.

    c++ ist doch ein aufsatz auf c (soviel weiß ich 😉 )

    kann man so sehen. ist zwar nicht ganz richtig, aber ausreichend wahr, um damit heute mal zu operieren.

    der compiler wandelt c++ in c um und compiliert erst dann.

    das ist gar nicht mehr wahr. natürlich waren die ersten c++-compiler welche von c++ nach c. das ist halt einfacher. aber das ist schon viele jahre her. unter umständen findeste keinen mehr, der sowas macht. und bestimmt keinen, der standard-c++ kann (oder weigstens templates).
    (macht der comeau nicht noch den spaß, ne hochsprache als zielsprache zu haben? auf http://www.comeaucomputing.com/ steht "Comeau C/C++ must work with specific C compilers in order to generate native object code.")
    ok, es gibt noch einen (nee, wieder einen!). aber mach die keine hoffnungen, daß maschinengeneriertes c lesbar wäre.

    ist es möglich, diese umwandlung von c++ nach c anzusehen???

    den c-code kannste dir angucken. jo.

    im klartext: ich will die c datei einer umgewandelten c++ datei ansehen.

    jo.

    compiler: djgpp, mingw, vc6.

    nee. die drei machen keinen zwischenschritt in c.



  • C++ ist nicht (mehr) wirklich C kompatibel. Wenn du eine Objektorientierte C Version suchst, die zu C kompatibel ist, dann schau dir Objective-C an.



  • Ich dächt ich hätte gehört manche kompiler wandeln nach assembler un...



  • ness schrieb:

    Ich dächt ich hätte gehört manche kompiler wandeln nach assembler un...

    Jo, das ist durchaus üblich.



  • Ich dächt ich hätte gehört manche kompiler wandeln nach assembler un...

    ASM ist ja auch keine Hochsprache.

    und bestimmt keinen, der standard-c++ kann (oder weigstens templates).

    Zufällig ist der Comeau compiler der einzige der export unterstützt...



  • Kann man sich denn den Assemblercode anzeigen lassen?



  • Höhlentroll schrieb:

    Kann man sich denn den Assemblercode anzeigen lassen?

    Das kann so ziemlich jeder Compiler. Beim gcc mit -S, beim VS.NET unter Project/Properties. Einfach in der Hilfe nachschlagen



  • kommt auf den compiler an, imho ist compilergenerierter ASM aber auch nicht lesbar(method pointer..brrr...)



  • otze schrieb:

    kommt auf den compiler an, imho ist compilergenerierter ASM aber auch nicht lesbar(method pointer..brrr...)

    Ist ASM jemals lesbar? 🙄



  • Wenn du Compiler ASM lesen willst dann kann ich BC empfehlen. Der fügt den C++ Code immer als Kommentar hinzu.



  • otze schrieb:

    kommt auf den compiler an, imho ist compilergenerierter ASM aber auch nicht lesbar(method pointer..brrr...)

    er ist sehr gut kommentiert durch den entsprechenden c++-code, der mitaufgelistet wird.



  • otze schrieb:

    kommt auf den compiler an, imho ist compilergenerierter ASM aber auch nicht lesbar(method pointer..brrr...)

    och, geht, wenn der Compiler stark optimiert kommt man natürlich leicht durcheinander, weil der ja auch Anweisungen umsortiert. Aber immer noch besser als erst kompilieren und dann disassemblieren 😉


Log in to reply