if Abfrage und Compiler Optimierung



  • Hallo ihr Lieben,

    nach langer Zeit mal wieder eine Frage:

    Sagen wir ich habe eine if Abfrage derart

    int a = 1;
    
    if( a == 1 )
      std::cout << "Hello" << "\n";
    if( a == 2 )
      std::cout << "World" << "\n";
    

    Jetzt steht zur Compiler Zeit schon fest, dass lediglich der erste Fall eintreten wird. "Merkt" das der Compiler, verwirft die komplette if Abfrage und schreibt lediglich den ersten Fall in den übersetzten Code?

    Gruß,
    -- Klaus.


  • Mod

    "Merkt" das der Compiler, verwirft die komplette if Abfrage und schreibt lediglich den ersten Fall in den übersetzten Code?

    Ja. Diese Optimierung nennt man constant propagation.



  • Super Sach, vielen Dank! 🙂

    Gruß,
    -- Klaus.


Log in to reply