Frage zu Makros oder inline Funktionen [geloest]



  • Hallöchen mal wieder 😃 ,

    ich bin nun bei Makros in meiner Buch (Breymann - Der C++-Programmierer, ab Seite 130) angelangt und ich habe mir die Frage gestellt, ob Makros und Funktionen dann nicht eigentlich dasselbe sind.
    Kurz Google angeworfen und auf den Thread im Forum gestoßen:
    http://www.c-plusplus.net/forum/73415-full
    Nun weiß ich, dass es in etwa dasselbe ist.
    Programmcode läuft schneller (Makro), aber Fehler sind nicht so leicht zu finden (debugging), ...
    Es kamen dann die inline-Funktionen zur Sprache, wo dann mal wieder eine Diskussion entfacht wurde, wo ich als Anfänger nun nicht wirklich viel (um nicht sagen zu müssen "quasi nischt" (Assembler-Code) 😃 ) verstehe.
    Bevor ich hier zu viel reinschreibe kurz die Frage:

    Ist das Nutzen von inline-Funktionen sinnvoller oder von Makros? Bzw in welchem Fall wird was bevorzugt oder ist es eher vom Programmierer abhängig, was er lieber nutzt?

    (inline-Funktionen muss ich mir noch angucken, möchte es nur im Vorraus schon gerne wissen 🙂 )

    Sollte ich etwas komplett missverstanden haben, bitte drauf hinweisen ⚠

    Ich bedanke mich schonmal 😉

    MfG


  • Mod

    xStrykex schrieb:

    Sollte ich etwas komplett missverstanden haben, bitte drauf hinweisen ⚠

    Dir fehlt das nötige Hintergrundwissen, um die Diskussion wirklich verstanden zu haben. Das ist nichts schlimmes, da du es im Laufe der Zeit lernen wirst, jedoch ziehst du daher falsche Schlussfolgerungen. Bis dahin empfehle ich, dass du dich dogmatisch an die Regel "Nutze niemals Makros in C++ (außer für Includeguards)" hältst. Nutze inline nur aufgrund seiner "sonstigen" Eigenschaften (es ermöglicht Mehrfachdefinitionen), nicht aufgrund eines vermuteten technischen Vorteils (der sowieso seit vielen Jahren nicht mehr gegeben ist).



  • Einfache Regel: was mit Inlinefumktionen zu lösen ist, wird auch mit Inlinefunktionen gelöst. Makros sind zu vermeiden.

    Makros und Inlinefunktionen sind grundverschieden. Inlinefunktionen sind richtige, vom Compiler verarbeitet Funktionen mit allem was dazugehört. Makros werden dagegen vom Präprozessor in den Code eingefügt, bevor der Compiler ihn zu sehen bekommt.



  • Ok, schonmal eindeutig (auch wenn es nur zwei Antworten, das aber mit Sicherheit die verbreitete Meinung ist) und werde mich danach mal richten, danke euch 🙂



  • Noch eine Frage (Off-Topic): Der Thread http://www.c-plusplus.net/forum/73415-full ist von 2004. Hätte ich dort auch reinposten können oder wird das nicht gerne gesehen? 🙄



  • xStrykex schrieb:

    Noch eine Frage (Off-Topic): Der Thread http://www.c-plusplus.net/forum/73415-full ist von 2004. Hätte ich dort auch reinposten können oder wird das nicht gerne gesehen? 🙄

    Wird nicht gerne gesehen.



  • Okidoki 👍


Anmelden zum Antworten