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啦~~~

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值