1. 程式人生 > >C++ 初始化操作由 case 標籤跳過

C++ 初始化操作由 case 標籤跳過

最近在編畢業設計的程式, 中間遇到不少細節問題,隨時整理記錄下來。

執行環境VS2008 C++ MFC程式

switch(nIDEvent)
 {

  case 1:
        CString strTime ; //系統時間
        CTime time = CTime::GetCurrentTime();
        strTime = time.Format(_T("%Y-%m-%d,%H:%M:%S")); 
        SetDlgItemText ( IDC_STATIC_time, strTime ); 
        break;  
  case 2:
      if( led == 0)
      {    
       led =1 ;
          }
        else
          { 
           led = 0 ;
          }
        break;
}

當之有case1的時候執行正常, 加入了 case2後 ,出現錯誤:

錯誤 2 error C2360: “time”的初始化操作由“case”標籤跳過  
錯誤 3 error C2360: “strTime”的初始化操作由“case”標籤跳過 

經過查詢發現,如果要在case裡面定義變數,需要用括號括起來{}。

改為

  case 1:
        { 
        CString strTime ; //系統時間
        CTime time = CTime::GetCurrentTime();
        strTime = time.Format(_T("%Y-%m-%d,%H:%M:%S")); 
        SetDlgItemText ( IDC_STATIC_time, strTime );   
        }
  break;

OK啦~~~
--------------------- 
原文:https://blog.csdn.net/zhliy0711/article/details/7663405