skipped by case

2023-11-13

void   func(    void   )   
{   
         int   x;   
         switch   (   x   )   
        {   
         case   0   :   
               int   i   =   1;                //    error,   skipped   by   case   1       
              {    int   j   =   1;   }        //    ok,   initialized   in   enclosing   block   
         case   1   :   
               int   k   =   1;                //    ok,   initialization   not   skipped   
        }   
}

在VC中使用switch语句时遇到“error C2360: initialization of 'k' is skipped by 'case' label”的编译错误。

msdn有下面的说明:   
compiler   error   c2360   
initialization   of   identifier   is   skipped   by   case   label  
the   specified   identifier   initialization   can   be   skipped   in   a   switch   statement.   
it   is   illegal   to   jump   past   a   declaration   with   an   initializer   unless   the   declaration   is   enclosed   in   a   block.   
the   scope   of   the   initialized   variable   lasts   until   the   end   of   the   switch   statement   unless   it   is   declared   in   an   enclosed   block   within   the   switch   statement.   
the   following   is   an   example   of   this   error: 



在switch语句内定义一个变量的时候,如果不在一个语句块内,它是直到遇到switch的"}"才结束的。int i = 1;错误,错就错在它是以switch的"}"结束的,此时被case 1:语句跳过。int j = 1;它是遇到下面的"}"就结束了,因此正确。int k = 1;它虽然没有在一个语句块中,但它的下一个结束"}"正好就是switch的"}",不会被跳过,因此也正确。

所以,如果有在case内定义新变量,最好将该条case内的语句加上{}构成语句块,避免出错。
总之而言:在case里面声明变量要用{}进行作用域限制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

skipped by case 的相关文章

  • 一般函数指针和类的成员函数指针

    一般函数指针和类的成员函数指针 转载请注明原文网址 http www cnblogs com xianyunhe archive 2011 11 26 2264709 html 函数指针是通过指向函数的指针间接调用函数 函数指针可以实现对参
  • 显式的实例化与外部模板的声明

    2 12 2 显式的实例化与外部模板的声明 深入理解C 11 C 11新特性解析与应用 第2章保证稳定性和兼容性 本章中的新特性基本上都遵循了该设计思想 本节为大家介绍显式的实例化与外部模板的声明 作者 Michael Wong IBM X
  • C++11 中的命名空间问题?

    有人可以解释一下以下内容吗 cat test cpp include
  • 如何使用与平台无关的方法获取 C 中的执行程序目录?

    我在 Linux 上为 unix 和 win32 在每个构建时交叉编译 平台开发我的应用程序 所以一个随时可用的函数会很好 我正在使用具有以下功能的glibgchar g get current dir void 函数并返回当前目录 但我真
  • malloc_trim() 可以从堆中间释放内存吗?

    我对 glibc 中实现的 malloc trim 的行为感到困惑 man malloc trim malloc trim release free memory from the top of the heap This function
  • 如何安全地调用 vsnprintf() ?

    我正在将一些非常古老 gt 10 年 的 C 代码移植到现代 Linux 我在自定义编写的 vsnprintf 包装器中遇到分段错误 显然它的任务是检测重复的输出字符串并实习它们 char strVPrintf const String f
  • 加载可执行文件或执行库

    有一个large number of 问题关于如何执行库或动态加载可执行文件的SO 据我所知 所有答案都归结为 将可执行文件编译为位置无关代码并使用dlopen 这非常有效 并且在 macOS 上仍然有效 直到glibc 最近的变化 明确禁
  • Cygwin 不支持 glibc

    Cygwin 常见问题解答包含以下 glibc 在哪里 的信息 Cygwin 不提供 glibc 它使用 newlib 来代替 它提供了很多 但不是全部 相同的功能 将 glibc 移植到 Cygwin 会很困难 我很惊讶并检查了发布包 因
  • GCC 如何自动知道包含 glib 库?

    我用 C 语言编写了一个简单的程序 它使用glib h 但是当我编译它时 我收到如下错误 gcc test c o test test c 3 18 fatal error glib h No such file or directory
  • 如何使用__malloc_hook?

    In GNU C 库参考手册 有一个示例程序 p 65 但我不知道这三句话是什么 malloc hook old malloc hook old malloc hook malloc hook malloc hook my malloc h
  • CentOS6 中运行 chromedriver 时出错:“/lib64/libc.so.6: version `GLIBC_2.14' not found”

    我正在尝试在 CentOS 6 上启动 chromedriver 有关操作系统的更多信息 code root localhost bin uname all Linux localhost localdomain 2 6 32 358 el
  • 如何包装 glibc 库函数以自动使用“unsigned char”和“wchar_t”?

    我总是用char as unsigned char and wchar t as wint t 鉴于此 是否存在一种解决方案来更改函数接口以使用这些类型 无论是否重新编译 glibc 另请参阅这个问题 如何更改 wchar h 以使 wch
  • 使用LD_PRELOAD方法注入printf时出现问题

    我在我的一个项目中破解了 glibc 的 printf 并遇到了一些问题 您能提供一些线索吗 我关心的问题之一是为什么同样的 malloc free 解决方案可以完美地工作 如附件所示 PrintfHank c 包含我自己的 printf
  • 如何让Ubuntu的crypt(3)支持Blowfish?

    根据crypt 3 http man7 org linux man pages man3 crypt 3 html手册中 Blowfish 由 2a 前缀表示 是受支持的密码方法之一 ID Method 1 MD5 2a Blowfish
  • 可以自定义printf吗?

    我有一些需要经常打印的结构 现在 我在这个结构周围使用经典的打印包装器 void printf mystruct struct my struct if my struct NULL return printf value1 d value
  • Glibc - ucontext.h 中出现错误,但仅适用于 -std=c11

    我有这个最小的 helloworld 扩展包括ucontext h include
  • 使用 uint64_t 作为键和结构体作为值的 GHashTable

    我正在学习GHashTable 虽然 Stackoverflow 中已经有一些例子 但它们只是一些常见的情况 所以我仍然不确定如何实现我的要求并决定寻求帮助 我想用一个uint64 t作为钥匙和struct作为价值 我发现没有这样的内置哈希
  • 使用 glibc 而不是默认库编译的 C 程序:执行时权限被拒绝

    这是我在 stackoverflow 上的第一个问题 所以我会尽力做好 Context 我想提供一个可以在每个 Linux 发行版上运行的程序 例如 一个将使用 C 11 的程序 在没有 C 11 库的系统上运行 为此 我想复制我的程序使用
  • pthread_cond_broadcast 被 dlsym 破坏了?

    我正在尝试使用 LD PRELOAD 机制插入对 pthread cond broadcast 的调用 我插入的 pthread cond broadcast 函数只是调用原始的 pthread cond broadcast 然而 对于一个
  • getaddrinfo在程序中调用assert

    我正在使用 libcurl 开发一个程序 该程序创建一个线程 该线程又使用 libcurl 发出 HTTP 请求 但有时程序会因错误而崩溃 netlink 描述符上出现意外错误 9 在curl中关闭AsynchDNS之后 但问题依然存在 据

随机推荐

  • 史上最全C/C++面试八股文,一文带你彻底搞懂C/C++面试!

    前述 本文初衷是为了总结本人在各大平台看到的面经 我会在本文持续更新我所遇到的一些C 面试问题 如有错误请一定指正我 目录 1 讲一讲封装 继承 多态是什么 2 多态的实现原理 实现方式 是什么 以及多态的优点 特点 3 final关键字的
  • PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法 PHP版微信公共平台消息主动推送 突破订阅号一天只能发送一条信息限制 需要的朋友可以参考下 通过学习借鉴朋友的实现方法进行整理 实现了PHP版的微信公共平台消息主动推送 分享给大家供
  • Kafka的数据消费过程以及消息不丢失机制

    文章目录 Kafka数据写入流程 Kafka数据消费流程 消息不丢失机制 broker数据不丢失 生产者数据不丢失 消费者数据不丢失 Kafka数据写入流程 执行流程 生产者获取对应分区的 leader 位置 发数据给leader brok
  • 区别VAN与GAN,LSGAN、WGAN、WGAN-GP、CGAN

    训练 稳定 样本的 多样性 和 清晰度 似乎是GAN的 3大指标 David 9 VAE与GAN 聊到随机样本生成 不得不提VAE与GAN VAE用KL divergence和encoder decoder的方式逼近真实分布 但这些年GAN
  • String、StringBuffer、StringBuilder的区别——(面试题)

    String StringBuffer StringBuilder的区别 String StringBuffer StringBuilder 执行速度 最差 其次 最高 线程安全 线程安全 线程安全 线程不安全 使用场景 少量字符串操作 多
  • Go开发工具

    http studygolang com articles 1678 1 4 Go开发工具 本节我将介绍几个开发工具 它们都具有自动化提示 自动化fmt功能 因为它们都是跨平台的 所以安装步骤之类的都是通用的 LiteIDE LiteIDE
  • 【ML on Kubernetes】第 3 章:探索 Kubernetes

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • SCPI 语言简介

    电子负载中需要用到 所以记录下 来源是德科技 SCPI 可编程仪器的标准命令 是一种基于 ASCII 的仪器编程语言 供测试和测量仪器使用 SCPI 命令采用分层结构 也称为树系统 相关命令归组于共用结点或根 这样就形成了子系统 下面一部分
  • FIO的基本概念

    对于FIO 其是一个10测试工具 可以运行在多种操作系统上 用来测试本地磁盘 网络存储等的性能 FIO有以下基本概念 大家可以先了解一下 1 基本概念 I O类型 顺序读 顺序写 随机读 随机写 块大小 读写时规定的block size 一
  • Keras入门(二)模型的保存、读取及加载

    本文将会介绍如何利用Keras来实现模型的保存 读取以及加载 本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络 DNN 模型 模型的结构示意图如下 具体的模型参数可以参考文章 Keras入门 一 搭建深度神经网络 DNN
  • Mathematica定义函数

    Mathematica定义函数时有点特殊 需在变量后加一个下划线 具体见下面示例 上面示例中定义函数时用的是 其实也可以用 这两个有什么区别呢 具体见下面示例便知 总结 Mathematica定义函数时 变量后面应加一个下划线 然后尽量用
  • DCDC电源负载瞬态响应分析

    DCDC电源负载瞬态响应分析 负载瞬态响应 输出电压过冲现象及其产生原因 如何改善输出电压过冲 负载瞬态响应 当负载电流突然增大或减小时 在us或ns时间内发生较大变化 变化量设置为80 满载输出电流 输出电压的瞬态响应 输出电压过冲现象及
  • springboot处理 json 转换成 实体对象

    可以使用 RequestBody PostMapping add public Result add RequestBody LogisticsDemand demand if demand getRefreshTime null dema
  • Latex-遇到的各种公式和特殊字符

    用的是OverLeaf Sigmoid的写法 begin equation sigma x frac 1 1 e x end equation Softmax的写法 begin equation sigma t i frac e t i s
  • 在Linux(Ubuntu) 中安装mysql服务器并开启远程访问

    在以linux为内核的有centos和ubuntu 推荐大家使用ubuntu 因为使用的人数多 出现了问题方便及时解决问题 一 创建一个云主机 ssh root 39 107 227 105 The authenticity of host
  • 华为OD机试(JAVA)真题II

    华为题库已换 后续会令启专栏更新最新版 介意的勿订阅 介意的勿订阅 介意的勿订阅 华为机试有三道题目 第一道和第二道属于简单或中等题 分值为100分 第三道为中等或困难题 分值为200分 总分为400分 150分钟考试时间 之前通过为150
  • vs2019MSDN(离线帮助文档)的下载与使用

    像这样搬砖的事情最烦了 在这里给大家总结一下步骤 本文参考 https blog csdn net weixin 41234001 article details 103308659 MSDN是vs的一个离线帮助文档 相当于帮助手册 1 检
  • Java中Map.Entry详解

    关于HashMap的详细介绍请参考Java基础 HashMap集合 1 Map Entry简介 Map是java中的接口 Map Entry是Map的一个内部接口 Map提供了一些常用方法 如keySet entrySet 等方法 keyS
  • React16.3新的生命周期详解

    一 React v16 0前的生命周期 1 1 第一个是组件初始化 initialization 阶段 也就是以下代码中类的构造方法 constructor Test类继承了react Component这个基类 也就继承这个react的基
  • skipped by case

    void func void int x switch x case 0 int i 1 error skipped by case 1 int j 1 ok initialized in e