#if (Bedingung) und if (Bedingung)



  • Hi,

    gibt es eigentliche Unterschiede zw.

    #if (Bedingung)
    Blabla;
    #endif;
    

    und

    if (Bedingung)
    {Blabla;}
    

    nach Users’ Ansicht?

    Ist es so,daß die erste Version die Codegröße minimieren kann?

    MfG
    Hauser



  • Hauser schrieb:

    Ist es so,daß die erste Version die Codegröße minimieren kann?

    Ja, aber dann muß der User bei Bedingungsänderung das Programm neu übersetzen, was den Nutzen etwas schmälert 🙂



  • Daniel E. schrieb:

    was den Nutzen etwas schmälert 🙂

    😃

    Greetz, Swordfish



  • Hauser schrieb:

    gibt es eigentliche Unterschiede zw. nach Users’ Ansicht?

    Ist es so,daß die erste Version die Codegröße minimieren kann?

    Diese Frage dürfte sich gar nicht stellen, da "#if()" fü den preprocessor gilt und "if()" für den compiler.

    Der Preprocessor wird vor dem Compiler ausgeführt. Außerdem musst du bedenken das mit "#if" nur numerische werte verglichen werden können.

    Ich benutze sowas gerne für "normale" und "debug" versionen von programmen.

    Ich definiere mit define eine konstante und lasse dann vor dem compilieren entscheiden was es sein soll. Dadurch wird zum Schluss das Binary größer bzw. kleiner 🙂 Somit kann man die Frage nach der Codegröße mit "Ja" beantworten.

    Also ist es eigentl. streng genommen nur für die Entwickler interessant 😋



  • codefrag schrieb:

    Außerdem musst du bedenken das mit "#if" nur numerische werte verglichen werden können.

    Nicht präzise genug. Der Präprozessor erwartet hier compilezeit-konstante integrale Ausdrücke.



  • groovemaster schrieb:

    codefrag schrieb:

    Außerdem musst du bedenken das mit "#if" nur numerische werte verglichen werden können.

    Nicht präzise genug. Der Präprozessor erwartet hier compilezeit-konstante integrale Ausdrücke.

    dann machen wir es aber ganz genau 😉

    http://www.la.utexas.edu/lab/software/devtool/gnu/cpp/cpp_35.html


Log in to reply