将 GNU 大小写范围扩展转换为标准 C

2023-11-23

GNU 大小写范围扩展允许 switch 语句中的大小写范围:

switch (value) {
    case 1 ... 8:
        printf("Hello, 1 to 8\n");
        break;
    default:
        printf("Hello, default\n");
        break;
}

如何将其转换为标准 C(c99 或 c89)?添加个案陈述吗?

编辑:您将如何具体处理非常大的 switch 语句?


switch(value) 
{
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
        printf("Hello, 1 to 8\n"); 
        break;     
    default:         
        printf("Hello, default\n");         
        break; 
} 

EDIT:来回答评论。
如果您的案例太多,那么您可能需要考虑更换开关盒 with if-else结构体。它可以更加干净、简洁和可读。

if (value >=1 && value <= 8) 
{    
    printf("Hello, 1 to 8\n"); 
} 
else 
{   
    printf("Hello, default\n"); 
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 GNU 大小写范围扩展转换为标准 C 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • GCC 如何运行其他程序?

    也许标题并没有那么准确地表达问题 我知道当我跑步时gcc foo cGCC 调用其他为其完成所有工作的子程序 使 gcc 主程序只是一个接口 但这到底是如何完成的呢 是否使用system or exec或者其他一些功能 我之所以想知道这个是
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 具有多个捕捉点的 CoordinatorLayout

    这里我有一个相当复杂的动画 可以使用以下方法以简单的方式解决 我相信 协调器布局 它有3个状态 初始 左屏幕 标题视图完全显示 橙色 背景 工具栏 灰色圆角矩形 实际上是那里的照片 加上下面的一些其他视图 TextViews RatingB
  • 在 R 中抓取受密码保护的网站

    我正在尝试从 R 中受密码保护的网站中抓取数据 通过阅读 httr 和 RCurl 包似乎是使用密码身份验证进行抓取的最佳选择 我还研究了 XML 包 我试图抓取的网站如下 您需要一个免费帐户才能访问完整页面 http subscriber
  • 使用 Visual Studio 2010 运行 64 位版本的 IIS Express 8 RC

    我有一个使用 64 位版本的网络应用程序SharpSvn 具有非托管依赖项的托管 DLL 它不能在 IIS Express 7 0 中运行 切换到 32 位版本的程序集效果很好 我安装的是64位版本IIS 8 RC 但是 Visual St
  • 为什么这不能在 Java 中编译?

    如果你给 public class test public static void main String ar if true int i 0 它没有编译 但带大括号的相同代码是 public class test public stat
  • 为笔记本设置默认 sys.path

    我将所有 py 文件放在文件夹 script 中 将所有 IPython 笔记本放在名为 Notebook 的文件夹下 每个笔记本文件对脚本上的一个或多个文件存在多个交叉依赖关系 Having sys path append在每个笔记本顶部
  • Sails.JS HTTP + HTTPS

    我正在尝试弄清楚如何提升一个同时响应 HTTP 和 HTTPS 请求的 sails 应用程序 我使用了 config local js 方法来配置express 如下 详细here var fs require fs module expo
  • 警报对话框中 EditText 框的空验证 - Android

    我正在尝试向位于警报对话框内的编辑文本字段添加一些文本验证 它提示用户输入名称 我想添加一些验证 这样如果他们输入的内容为空或为空 除了创建一个显示错误的 Toast 之外 它不会执行任何操作 到目前为止我有 AlertDialog Bui
  • IoC、Dll 引用和程序集扫描

    虽然这个问题与 StructureMap 有关 但我的一般问题是 使用 IoC 连接组件时 容器in code 相反 通过配置xml 你 通常需要明确的项目 构建 对所有程序集的引用 为什么要使用单独的组件 因为 抽象类驻留在 将组件与混凝
  • W/ViewRootImpl:由于没有窗口焦点而取消事件:MotionEvent?

    每次我从子活动按回父活动时都会收到此错误 W ViewRootImpl Cancelling event due to no window focus MotionEvent action ACTION CANCEL actionButto
  • 如何在 CouchDB 中使用 Map-Reduce 计算最大值?

    我知道有内置的 stats提供 sum count min max 和 sumsqr 的函数 我想知道的是如何以映射缩减方式计算最大值 如果没有更多信息 我无法想出一个可以工作的归约函数 我唯一能想到的就是对值进行排序并选取第一个值 我的地
  • 如何对单个 Neo4j 数据库进行分区?

    是否可以将一个 Neo4j 数据库进行划分 使一个数据库中有多个起点 从而可以隔离所有查询 而不是拥有多个数据库 我已经考虑过这一点 并且我认为它在一定程度上可以发挥作用 但是一旦使用了标签之类的东西 那么这个想法就行不通了 因为标签查询将
  • 在 jenkins 的 github pull request 中添加评论

    我在 Jenkins 中使用 Git 拉取请求构建器插件将拉取请求链接到 Jenkins 作业由钩子触发 一切运行顺利 尽管如此 在构建结束时 我想在出现失败 成功或错误时添加注释 我尝试使用管道并使用 pullRequest commen
  • AsyncUdpSocket如何使用接收

    我正在尝试让 iPhone 的程序在模拟器上运行 我的问题是接收 UDP 数据 我使用异步 Udp 套接字 如果我制作一个套接字并使用sendData NSData toHost 效果很好 我想我无法弄清楚接收功能是如何工作的 我假设是这样
  • MySQL、json、JSON_ARRAY_APPEND - 为什么追加在 5.7.13 上不起作用?

    我到底如何将数据插入 json mysql 字段 我可以创造一个记录 INSERT INTO git object user id git meta last update VALUES 11111 host a id 1 select n
  • instagram api 中的回调 url 是什么以及如何实现它

    嗨 我是初学者程序员 我正在尝试使用 Instagram 的实时照片更新 api 我的目的是使用这个API CONSOLE的订阅方法 https apigee com console instagram 但我无法理解和处理回调 url 回调
  • 具有离线路线功能的离线 iPhone 地图 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在开发一个 iPhon
  • 如何传递日期时间参数?

    如何将 UTC 日期传递给 Web API Passing 2010 01 01工作正常 但是当我传递 UTC 日期时 例如2014 12 31T22 00 00 000Z 带有时间部分 我收到 HTTP 404 响应 所以 http do
  • 防止 ASP.Net MVC 中的 Cookie 重放攻击

    我的任务是实现本文中的第 4 点 http support microsoft com kb 900111 这涉及使用会员资格提供程序在用户登录和注销时向服务器端记录添加注释 然后确认当使用 cookie 进行身份验证时 用户尚未注销 这对
  • 按字母顺序粘贴两个向量的元素

    假设我有两个向量 a lt c george harry harry chris steve steve steve harry b lt c harry steve chris harry harry george chris georg
  • 将 GNU 大小写范围扩展转换为标准 C

    GNU 大小写范围扩展允许 switch 语句中的大小写范围 switch value case 1 8 printf Hello 1 to 8 n break default printf Hello default n break 如何