关于编译器提示a declaration cannot have a label的解决方法
2016-10-13 22:18
639 查看
最近在编程时遇到这样的一个问题,我在case 下面定义一个变量,然而程序在编译的时候报警,发现编译器提示a declaration cannot have a label ,问题代码如下所示:
上网查了一下资料得知在C语言中标签的下一条语句不能是定义变量的表达式,而case恰好就是标签,所以说出现这种情况也是比较正常的。知道了原因之后那么解决方法就多了,我可以在switch前就定义这个变量,代码如下所示:
或者我在case后加入复合语句,代码如下所示:
又或者是在case XXX:后加一个分号:
switch(msg) { case XXX: uint8_t i = 0; ..... break; ..... }
上网查了一下资料得知在C语言中标签的下一条语句不能是定义变量的表达式,而case恰好就是标签,所以说出现这种情况也是比较正常的。知道了原因之后那么解决方法就多了,我可以在switch前就定义这个变量,代码如下所示:
uint8_t i = 0; switch(msg) { case XXX: ..... break; ..... }
或者我在case后加入复合语句,代码如下所示:
switch(msg) { case XXX: { uint8_t i = 0; ..... break; } ..... }
又或者是在case XXX:后加一个分号:
switch(msg) { case XXX: ; uint8_t i = 0; ..... break; ..... }
相关文章推荐
- 关于编译器提示a declaration cannot have a label的解决方法
- 关于vc调试出现One or more breakpoints cannot be set and have been disabled解决方法
- Intellij IDEA ,按Ctrl+左键,不能进入类或方法的【解决办法】,提示Cannot find declaration to go to
- 关于vc调试出现One or more breakpoints cannot be set and have been disabled解决方法
- 关于MSPlus控件下载后用VS.NET打开提示目录不对的解决方法
- 关于SQL SERVER 2000 提示"一般性网络错误" 的解决方法
- VC++中,提示cannot add new member的解决方法
- 关于提示“处理URL时服务器出错”和“HTTP 500错误“的解决方法
- 关于excel提示无法加载xxx.xla(宏)的解决方法
- 关于IIS+ASP.net 中客户端访问出现的用户和密码提示解决方法
- 初学C++:编译器报错“Cannot open include file: 'iostream.h': No such file or directory”的解决方法
- 关于:打开AD组策略提示项目太长被截断的解释和解决方法
- 关于IIS安装提示文件无法复制的解决方法!
- 关于“Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.”问题的解决
- 在VMware上编译linux内核出现VFS: Cannot open root device "LABEL=/" or unknown-block(0,0) 错误的解决方法
- 关于GHOST时提示找不到GHOSTERR.TXT的解决方法
- 重要!当打开MMC或者inetmgr时提示“Cannot Open xxx.msc”,就用以下解决方法,安装至少MSXML3SP4然后重起就解决问题。
- 关于Cannot send session cache limiter - headers already sent错误解决方法
- 关于运行VBS文件提示“没有在该机执行windows脚本宿主的权限。请与系统管理员联系。”错误的解决方法
- php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法