Frage zu If Anweisung?



  • Werden folgende Afragen A und B vom Compiler gleich in Assamble übersetzt?

    bool boIF=true;
    double wert;
    
    // (A)
    if(boIF)
      wert= 100;
    else
      wert= 200;
    
    // (B)
    wert= boif ? 100 : 200;
    


  • Ob der Compiler daraus wirklich den selben Maschinen-Code produziert, hängt vom System ab (schau dir den Output an, dann siehst du es). Auf jeden Fall produziert es Codes mit identischem Verhalten (davon abgesehen, daß die zweite Variante wohl einen "unknown identifier" Fehler liefern würde ;)).



  • abgesehen davon gibts keine performance unterschiede odeR?



  • BorisDieKlinge schrieb:

    abgesehen davon gibts keine performance unterschiede odeR?

    Nein, dürfte es eigentlich nicht geben; und wenn dann nur _so_ minimal, dass es egal ist 🙂



  • abgesehen davon sollte man eh nich so low level optimieren. Wenns der gleiche code ist, gibts keine unterschiede. Und ich denke gcc und vc machen daraus den gleichen code.

    Allgemein ist Performance mittlerweile eh nicht mehr soo wichtig, weil die rechner einfach übelst schnell sind. Außer man macht wirklich performancekritische dinge, zB spiele oder so. aber in einer GUI im eventhandler für einen buttonklick am if zu optimieren is schwachsinnig.

    erst profilen, dann siehst du wo wirklich was langsam geht.



  • CStoll schrieb:

    Ob der Compiler daraus wirklich den selben Maschinen-Code produziert, hängt vom System ab (schau dir den Output an, dann siehst du es).

    Nitpick: Nicht vom System, vom Compiler.


Anmelden zum Antworten