Vars vor der dem MsgSwitch oder bei jeder Nachricht deklarieren ?



  • Hallo,

    Wo ist es sinnvoll, seine Variablen zu deklarieren (bzgl: Performance) vor dem MessageSwitch also:

    LRTESULT CALLBACK WndProc(...)
    {
        // VARS HIER!
        switch(uiMsg)
        {
            // usw.
        }
    }
    

    oder bei jeder WM-Nachricht selbst ?

    DAnke schonmal 👍



  • Könntet ihr mir bitte helfen 😞 ...is echt wichtig...oder war ich ungenau ? 😕

    Geht mir nur um Übersicht und Performance...wo sollte man die definieren ?



  • WinUser schrieb:

    oder war ich ungenau ? 😕

    Ja.

    Meine Antwort: Kommt drauf an...



  • @WebFritzi: Häh?
    @WinUser:

    Bist du sicher, Deklaration und Definition nicht zu verwechseln?

    also bei:

    int main( ) {
    
        int a = 3;
    
        switch( a ) {
    
            case 1:
                int b = 2;
                break;
    
            case 2:
                int c = 1;
                break;
    
            case 3:
                int d = 3;
                break;
        }
    }
    

    sagt mein Compiler (natürlich)

    Compiler schrieb:

    error C2360: Initialisierung von 'b' durch 'case'-Marke übersprungen
    error C2360: Initialisierung von 'c' durch 'case'-Marke übersprungen
    error C2360: Initialisierung von 'd' durch 'case'-Marke übersprungen

    Greetz, Swordfish



  • So geht's:

    int main( ) {
    
        int a = 3;
    
        switch( a ) 
        {
    
            case 1:
            {     
                int b = 2;
                break;
            }
    
            case 2:
            {
                int c = 1;
                break;
            }
    
            case 3:
            {
                int d = 3;
                break;
            }
        }
    }
    


  • Neee, das meinte ich nicht...:

    LRESULT CALLBACK WndProc(...)
    {
        int i, a, ghj, wre;
        switch(uiMsg)
        {
            case WM_CREATE:
                // wenn i bspw. aber nur hier gebracuht wird...ist es dann besser i nur hier zu definieren ?
                break;
        }
    }
    

    Dann vllt. noch:

    int main( ) {
    
        int a = 3;
    
        switch( a ) {
    
            case 1:
                int b;
                b = 2;
                break;
    
            case 2:
                int c;
                c = 1;
                break;
    
            case 3:
                int d;
                d = 3;
                break;
        }
    }
    

    geht auch!



  • WinUser schrieb:

    wenn i bspw. aber nur hier gebracuht wird...ist es dann besser i nur hier zu definieren ?

    Aber ja.



  • !!!DANKE!!!



  • WinUser schrieb:

    Dann vllt. noch:

    Wow, das tut. OoO
    Moment bitte, muss das grad' mal eben verdauen...

    Greetz, Swordfish


Log in to reply