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. java sql in语句_Java字符串转Sql语句In格式工具方法
  2. NSDateFormatter and NSDateComponents
  3. 【快应用篇01】快应用它来了!带你了解什么是快应用!
  4. Java状态和策略设计模式之间的差异
  5. 【ELK】ELK安装与配置
  6. android 控制流混淆 反向,AST混淆实战:仿obfuscator混淆控制流平坦化
  7. 加密货币的寒冬如何破冰?
  8. Android常见概念
  9. 免费python网络课程-2019年10种免费的Python学习课程
  10. 2019最新蚂蚁金服Java 4面真题
  11. 联想服务器风扇智能调节,联想怎么调风扇转速
  12. URl和URI 通俗的例子
  13. 运动控制器PSO位置同步输出(一):硬件平台与PSO指令简介
  14. 关于ERP生产制造系统实施的几点看法
  15. 将内存FFFF:0 ~ FFFF:F 内存单元中的数据复制到 0:200 ~ 0:20F 中
  16. 粗虚线和细虚线_高速虚线两侧是粗虚线 高速公路虚线两边加斜线什么意思?...
  17. 手把手教你用JAVA实现“声音复刻”功能(复刻你的声音)标贝科技
  18. 熊猫 PK27QA2 评测
  19. 新款 iMac2021上手体验,这次你心动了吗
  20. 联通GPRS上网设置

热门文章

  1. kingcms php 下载,KingCMS PHP 2009版盛大发布
  2. 计算机电源怎么设置玩游戏不卡,端游绝地求生怎么设置不卡
  3. 计算机主板 g41,g41主板参数盘点
  4. java怎么写dnf辅助_易语言地下城与勇士辅助自动刷图类源码
  5. 2015年度社区之星 放榜啦
  6. InetAddress类中的getHostName()方法的坑
  7. 第一章 编程基础_ASCII 编码和GBK编码
  8. 云服务器怎么采购便宜?云服务器优惠 3 大准则
  9. java公路车为什么便宜_JAVA公路车真的很垃圾吗?
  10. Python print 输出时刷新当前行内容而不输出新行