看板 C_and_CPP 關於我們 聯絡資訊
遇到一個不解的問題: 本來 int b = 5 ; 這樣可以work, 但放入 switch 後就不能 compile 了, 好比說 switch (y) { case 1: int b = 5; break; } 錯誤訊息是: error C2360: 'b' 的初始化會被 'case' 標籤略過 但把這行改成 int b; b = 5; 這樣就可以了, 這是什麼樣的差異呢? 這兩種寫法有什麼不同嗎? 我的語言是 VC++ 2008, 請指教, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.126.29 ※ 編輯: wahaha99 來自: 220.132.126.29 (10/21 21:18)
johnlinvc:大概是你後面還有用到b 10/21 21:35
Falldog:case裡面的指令可以用{}包起來 宣告就不會有問題了 10/21 21:36
wawi:改成 case 1: {int b = 5;} 加個大括號即可 10/21 21:37
wahaha99:原來如此 感謝 10/21 21:39
herman602:警告你case 1可能不會被執行到 所以b不會被宣告 10/22 03:12
xatier:http://ppt.cc/@zdX 參考這篇 10/22 07:21