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 übersprungenGreetz, 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