WARNING will never be executed



  • Warum zeigt der Compiler hier eine "Line 8:warning will never be executed" an, ist doch nichts falsch?

    #include <iostream>
    using namespace std;
    
    int& bla(int i);
    
    int& bla(int i)
    {
        static int a = i;
        return a;
    }
    
    int main()
    {
        bla(5);
    
        return 0;
    }
    


  • Ich kann das hier mit gcc 4.7 nicht nachvollziehen. Welchen Compiler benutzt du?

    Ansonsten vermute ich, dass der Compiler sich darauf bezieht, dass die Initialisierung

    static int a = i;
    

    nur beim ersten Funktionsdurchlauf passiert und der Parameter i bei weiteren Aufrufen von bla keine Auswirkung mehr hat.


Anmelden zum Antworten