switch case 语句执行不到错误
2016-01-26 16:52
399 查看
今天写程序遇到了一个问题,代码如下:编译时报错,d:/demo/vc编写的socket简单聊天程序/testserver/testserverdlg.cpp(245): error C2360: “is8001”的初始化操作由“case”标签跳过
看了一下网页,是说这个case 8001:语句可能没有被执行到(执行其他case了)导致变量没有初始化而导致接下来的错误,所以需要把变量放到switch前面声明初始化,可是我又不想把初始化放在switch前面,还有一个解决方法,在swith中定义内部变量加括号,就可以了。
[code]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中定义内部变量加括号,就可以了。
[code]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; } }
相关文章推荐
- IOS监听屏幕状态
- 二进制文件与文本文件的差异
- DOM Exception error 类型
- openstack配置注意事项(主要是网络相关)
- 处理umeditor编辑器给a标签自动添加http://办法
- mysql中,与日期相关的函数
- [置顶] PHP memcache扩展安装,memcahed服务器安装,项目上运用memcahed
- 基于dropwizard/metrics ,kafka,zabbix构建应用统计数据收集展示系统
- postgreSQL jdbc(java连接)
- 关于招聘程序员
- win7屏蔽ctrl+alt+up/down快捷键之解决方案
- 1. Aeneas
- 优化Javascript数据遍历
- 优化Javascript数据遍历
- 基础类的DSP/BIOS API调用
- ShellExecuteA
- 成为明星程序员的10个提示
- 15分钟学会使用Git
- 01分数背包
- 优化Javascript数据遍历