Switch: jump to case label crosses initialization
Ostatnio zmodyfikowano 2014-06-08 08:44
mikson Temat założony przez niniejszego użytkownika |
Switch: jump to case label crosses initialization » 2014-06-07 21:54:17 Witam, Stworzyłem takiego case: switch( message ) { case WM_NOTIFY: LPNMHDR nmHdr =( LPNMHDR ) lParam; switch( nmHdr->code ) { case LVN_ITEMCHANGED: LPNMLISTVIEW nmListView =( LPNMLISTVIEW ) lParam; if( nmListView->uNewState && LVIS_SELECTED == LVIS_SELECTED ) { ListView_GetItemText( hListView, nmListView->iItem, 0, text, 1024 ); ListView_GetItemText( hListView, nmListView->iItem, 1, text2, 1024 ); } break; } break; }
Kompilator mówi: 665 C:\Users\admin\Documents\C++\winAPI\main.cpp jump to case label 653 C:\Users\admin\Documents\C++\winAPI\main.cpp crosses initialization of `tagNMHDR*nmHdr' 674 C:\Users\admin\Documents\C++\winAPI\main.cpp jump to case label 653 C:\Users\admin\Documents\C++\winAPI\main.cpp crosses initialization of `tagNMHDR*nmHdr'
|
|
Monika90 |
» 2014-06-07 21:57:41 dodaj klamerki po każdym case |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 22:01:24 Po każdym? Dlaczego więc niektóre działały bez klamerek a niektóre nie? |
|
Monika90 |
» 2014-06-07 22:02:59 Jak deklarujesz zmienne w case, to deklarcje powinny być w klamrach. |
|
pekfos |
» 2014-06-07 22:03:50 Nie musi być w każdym. Daj klamerki w tych case'ach, w których definiujesz zmienne. Skok do case w zasięgu zmiennej utworzonej wyżej powoduje błąd. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 22:05:50 Czyli jak mam tak rozległe casy, że nie chcę mi się sprawdzać czy definiuję tam zmienne, to mogę dać klamry wszędzie i nic się stać nie powinno? |
|
pekfos |
» 2014-06-07 22:06:55 Nic się złego nie stanie, jak dasz po każdym. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 22:10:18 Ok, dziękuję za pomoc. |
|
« 1 » 2 |