switch case 语句执行不到错误

今天写程序遇到了一个问题,代码如下:编译时报错,d:/demo/vc编写的socket简单聊天程序/testserver/testserverdlg.cpp(245): error C2360: “is8001”的初始化操作由“case”标签跳过

switch (iMessageID)
{
    case 8001:
     InitSystem8001 *is8001=new InitSystem8001;
     iRcvd = m_sConnectSocket.Receive(is8001,sizeof(InitSystem8001));
     break;
    case 8003:
     AliveRequest8003 *ar8003 =new AliveRequest8003;
     iRcvd = m_sConnectSocket.Receive(ar8003,sizeof(AliveRequest8003));
     break;
}

看了一下网页,是说这个case 8001:语句可能没有被执行到(执行其他case了)导致变量没有初始化而导致接下来的错误,所以需要把变量放到switch前面声明初始化,可是我又不想把初始化放在switch前面,还有一个解决方法,在swith中定义内部变量加括号,就可以了。

switch (iMessageID)
{
    case 8001:
     {
     InitSystem8001 *is8001=new InitSystem8001;
     iRcvd = m_sConnectSocket.Receive(is8001,sizeof(InitSystem8001));
     break;
     }
    case 8003:
     {
     AliveRequest8003 *ar8003 =new AliveRequest8003;
     iRcvd = m_sConnectSocket.Receive(ar8003,sizeof(AliveRequest8003));
     break;
     }
}
时间: 2024-10-01 16:34:22

switch case 语句执行不到错误的相关文章

Swift编程中的switch...case语句实例解析_Swift

Swift中的switch...case语句可以判断对象类型, Objective-C中则必须是整数. 不可以穿透,可以不写break, var rank = "A" switch rank{ case "A": //相当于if print("优") case "B": // 相当于else if print("优") case "C": // 相当于else if print(&quo

举例讲解Swift编程中switch...case语句的用法_Swift

Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性.使用Switch语句很简单: var i = 0 switch i { case 0: "0" //被输出 case 1: "1" default: "2" } 在这个最简单的Switch语句中,与其他语言很不同的一点是:不用显式的加上break.Swift的S

详解Swift的switch...case语句中break关键字的用法_Swift

与Objective-C中这部分内容相比,在Swift中switch得到了极大的改善.这是一件非常有趣的事,因为这还是没有添加到Objective-C中,还是没有打破Objective-C是C的超集的事实. 第一件令人兴奋的地方是可以对字符串转换.这也许正是你之前想要做,却不能做的事.在Objective-C中如果要对字符串用"switch",你必须要使用多个if语句,同时要用isEqualToString:,像下面这样: if ([person.name isEqualToStrin

Javascript中switch case 语句学习笔记

在if条件语句中,逻辑条件只能有一个,如果有多个条件,可以使用嵌套的if语句来解决,但这种方法会增加程序的复杂度,降低程序的可读性. 使用switch流程控制语句可以完美地解决这些问题,其基本结构如下: switch语句语法  代码如下 复制代码 switch(条件表达式) {         case 常量:         {                 语句a;         }         case 常量:         {                 语句b;     

C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

正常情况下,switch case语句是这么写的: switch(参数) { case 1 : ... ; break ; case 2 : ... ; break ; default: ... break ; } 这种是我们最常见的写法,当然也可以这么写: switch(参数) { case 1: case 2 : case 3 : case 4 : ... ;break ; default : ... ;break ; } 接下来说一种不常见的,但是对于多参数有很大的帮助的写法: 先给一个程

java中switch case语句的使用方法

switch语法  代码如下 复制代码 switch(表达式) { case 常量表达式1:语句1; .... case 常量表达式2:语句2; default:语句; } default就是如果没有符合的case就执行它,default并不是必须的. case后的语句可以不用大括号. switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型. 一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几

图片-switch语句中各个case语句与default的次序不影响执行结果吗?

问题描述 switch语句中各个case语句与default的次序不影响执行结果吗? 解决方案 解决方案二: switch...case... 语句switch case 语句基础知识之switch case语句 解决方案三: http://zhidao.baidu.com/link?url=wmBFivbZ3tyO_HPJvx3coYKWoVtAhIXR8cfkaEU-Zea5u8nkB2Um5pwvPExjMCrihmtMY0N8dQ1si17IkSHW2K 解决方案四: 你的外层switc

循环语句和switch...case

问题描述 循环语句和switch...case 请问在循环语句中使用了switch...case,如何在分支结束后再执行另一个分支? 解决方案 分支结束后再执行另一个分支什么意思? 你可以用贯穿的标号: switch (day) { case 1: case 2: ... case 5: cout << "work day "; case 6: case 7: cout << "rest day "; default: cout <&l

JavaScript switch case 的用法实例[范围]_javascript技巧

几个例子: 复制代码 代码如下: function case1(num){ switch(num){ case 1: document.writeln("show 1!!"); break; case 2: document.writeln("show 2!!"); break; case 3: document.writeln("show 3!!"); break; default: document.writeln("show ot