a label can only be part of a statement and a declaration is not a statement 【 标签只能是语句的一部分,而声明不是语句】

由于switch的几个case语句在同一个作用域(因为case 语句只是标签,它们共属于一个swtich语句块),所以如果在某个case下面声明变量的话,对象的作用域是在俩个花括号之间 也就是整个switch语句,其他的case语句也能看到,这样的话就可能导致错误。我们可以通过在case后面的语句加上大括号处理,之所以加大括号就是为了明确我们声明的变量的作用域,就是仅仅在本case之中,其实为了更规范的写switch-case语句,我们应该在case语句后边加大括号。

两种解决办法:

方法1:在case下面的语句全部用{ }括起来;

case MiddleAlgoCmd_BLE_PAIR_ACTION:
        {
          uint8_t *sendData;
          sendData = rec_msg.data;
          ROBOT_LOG_INFO("########cmd MiddleAlgoCmd_BLE_PAIR_ACTION#####\r\n");
          ROBOT_LOG_INFO("########cmd MiddleAlgoCmd_BLE_PAIR_ACTION rec_msg.data_len=%d\r\n", rec_msg.data_len);
          ROBOT_LOG_INFO("########cmd MiddleAlgoCmd_BLE_PAIR_ACTION type=%d\r\n", ((char *)rec_msg.data)[0]);
          ROBOT_LOG_INFO("########cmd MiddleAlgoCmd_BLE_PAIR_ACTION type2=%d\r\n", sendData[0]);
          packet_fun_set_cookie_sign_status(sendData[0], 0, 0);  // 需要确认参数
          break;
          }

方法2:前面加个打印语句,就不是一开始就是声明,也能过;

最好的处理方式还是方法1.

C语言常见问题(11):a label can only be part of a statement and a declaration is not a statement相关推荐

  1. a label can only be part of a statement and a declaration is not a statement

    今天在查阅u-boot代码时,发现一个奇怪的地方.记录下来,以备后续追溯. u-boot代码的main.c模块中,有一个cread_line函数,其中有一段话是这样的: case '\t':int n ...

  2. error: a label can only be part of a statement and a declaration is not a statement

    GCC: error: a label can only be part of a statement and a declaration is not a statement switch(a){ ...

  3. 错误“a label can only be part of a statement and a declaration is not a statement”解决方法

    之前写代码的时候用了一个goto语句,结果编译提示a label can only be part of a statement and a declaration is not a statemen ...

  4. C语言报错:a label can only be part of a statement and a declaration is not a statement

    在写代码的时候,变量的声明不应该出现在label之后 比如switch语句中的case结构也可能会遇到类似的问题. 在case标签下面定义了变量,则会报错. 对此问题的分析: 由于switch的几个c ...

  5. 《C语言常见问题集》 -- 摘录和C学习资源(部分已下载)

    1. 书源 获<C语言常见问题集>源自bjbs_270博文"分享C语言常见问题集".下载此书后觉得此书中讲的许多问题值得一观,加上有时间的便利便决定将其通看一篇.我将& ...

  6. c语言实验11答案,c语言实验9-11参考答案

    c语言实验9-11参考答案 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 数组 上机题9.编写程序:从键盘输入一串整数保存到数组中, ...

  7. 华北水利水电C 语言实验11,华北水利水电大学C语言实验11.doc

    华北水利水电大学C语言实验11 C语言程序设计实验报告 实验11.结构体程序设计 班级 2013156 学号 201315613 姓名 吴浩 [实验目的] (1)掌握结构体类型的概念.定义和使用: ( ...

  8. 主成分分析,充分图,聚类,主成分回归——数据分析与R语言 Lecture 11

    主成分分析,充分图,聚类,主成分回归--数据分析与R语言 Lecture 11 主成分分析 例子:求相关矩阵特征值 例子:求主成分载荷 例子:画碎石图确定主成分 例子:主成分得分-相当于predict ...

  9. c语言while根据近似公式求,c语言用π=1-1/3+1/5-1/7+.公式求π的近似值,直到最后一项的绝对值小于10^-6为止...

    题目: c语言用π=1-1/3+1/5-1/7+.公式求π的近似值,直到最后一项的绝对值小于10^-6为止 我编的程序 #include #include void main() {int i; fl ...

最新文章

  1. 远程登录linux进程的状态_Linux实操篇 - 远程登录到Linux系统
  2. IromPython .Net 的简介和第一个例子
  3. [20181015]为什么是3秒.txt
  4. 刷新后 页面 保持滚动条位置
  5. mysql grant教程_MySQL如何使用授权命令grant
  6. Kenai.com 将与 java.net 合并
  7. 最佳途径 | 容器规模化落地如何四步走?
  8. Git基础操作及常见命令——详解
  9. Pycharm配置Anaconda
  10. 为什么要使用Mybatis框架?JDBC的缺点有哪些?
  11. 每日10行代码173:测试下yafu的质因数分解能力
  12. 移动周刊第 176 期:Android 知识梳理
  13. Mac下Idea安装插件后不能启动的问题
  14. Si24R1超低功耗高性能2.4G无线收发器芯片
  15. 华为2019软件精英挑战赛-CodeCraft-2019大佬开源代码集合
  16. 未知地区的探索与猜想
  17. linux系统文件名颜色含义
  18. php zip压缩包下载
  19. obd协议 混动车_OBD协议介绍
  20. flash插件+linux,Linux下的flash插件

热门文章

  1. wxPython控件大全
  2. 【职场版】《漫漫邮子路(一)--走出你身处的“盒子”——朱斌》
  3. 在React中解析渲染markdown文件
  4. 深入操作系统底层分析nginx网络请求及响应过程
  5. win10 桌面图标有一部分显示白纸什么原因?亲测有效
  6. thymeleaf 调用后台方法
  7. 1024程序员节的由来?
  8. windows扩充C盘容量(删除Ubuntu分区)
  9. html5中before,before和after用法详解
  10. 考取叉车证在线模拟考试题库以及2019最新操作叉车工笔试题