当前位置: 首页 > news >正文

linux内核中阶梯判断switch-case的一种罕见用法(连续阶梯值的情况)

最近,我在看linux的内核源码程序,发现了switch-case阶梯判断中一种新用法,具体表现为:case后面跟着连续几个阶梯值,具体表现为:

switch (hw.w) { case 0 ... 1: if (SYN_CAP_MULTIFINGER(priv->capabilities)) num_fingers = hw.w + 2; break; case 2: if (SYN_MODEL_PEN(priv->model_id)) ; /* Nothing, treat a pen as a single finger */ break; case 4 ... 15: if (SYN_CAP_PALMDETECT(priv->capabilities)) finger_width = hw.w; break; }

case 0 ... 1:

内容1;

break;

case 4 ... 15:

内容2;

break;

从上面看好几个连续的阶梯值都运行相同的内容,因此使用了“开始值+空格+...+空格+结束值”这种写法。

之所以记录下来是因为这种写法在我看的linux内核源码中出现的概率特别小,这种写法不常见,但是也是存在的,因此特意写这篇文章记录。

注意:

我又查询了一下AI,发现这种写法只有在GCC扩展中才允许这样写,GCC以及兼容的编译器例如(clang)支持这种写法。这种写法不属于标准:ISO C/C++ 标准不包含该语法,MSVC 等非 GNU 编译器通常不支持。

因此,如果是GCC或者GCC的变种例如arm-linux-gcc是支持这种写法的,如果keil、IAR环境中不能使用这种写法,需要注意。

http://www.jsqmd.com/news/1070027/

相关文章:

  • Windows下载教程 Windows 10 保姆级安装步骤(附镜像文件)系统重装图文详解
  • 毕业季通关变革!2026一站式AI写作辅助网站终极指南
  • 36氪新浪潮大会:值得买科技朱越分享AI时代消费决策链路变化与品牌应对策略
  • Project Glasswing 扩展后,研发团队该怎么接住 AI 漏洞发现能力
  • 在重庆驾校学车,真实体验到底怎么样?
  • github克隆项目加速
  • GLM-5.2 vs GPT-5.5 成本实算:每天 1 万/10 万/100 万次请求的账单差距(2026)
  • ATtiny20 8位MCU超低功耗设计实战:从架构解析到物联网终端应用
  • 掉发和白发同时出现?高仕星维生素b的双重营养方案
  • 从零搭建 Kubernetes 1.30 集群:基于 kubeadm 的完整部署与集群管理指南
  • 2026实战:用Gemini镜像站解决Spring Boot微服务性能瓶颈与故障排查
  • 易元智创APP:AI智能画面去杂物,海南易元现实科技有限公司一键净化实拍场景
  • 零代码组态开发实操:串口屏项目从数月迭代压缩至数天
  • 多卡并行不卡顿,Instinct GPU 张量并行配置全解析
  • 2024年06月 GESP等级认证C++编程(四级)试题解析
  • 清华团队提出UniCM模型:统一框架学习气候模态,提升预测时效与精度
  • 淡泊名利之前,先承认我们都很焦虑
  • 杏林集:智汇中医-阶段八
  • 别被唱衰!程序员_小白必看:计算机4大黄金赛道+避坑原则(含网络安全)
  • 挖掘 Github 宝藏,盘点那些好用的 ROCm 开源项目
  • windows经典漏洞之永恒之蓝
  • AT21CSMK100单线EEPROM开发指南:从1-Wire协议到嵌入式存储实战
  • ATmega MCU功耗管理与I/O驱动设计:嵌入式硬件可靠性实战指南
  • 不如喘口气吧,小大人:别让卡顿的电脑,消耗掉你所有的耐心
  • 简单好用,一键搜索全网资源!
  • AI改写电商短视频赛道!全新图生视频功能,打破内容生产同质化僵局
  • 曹操出行RoboX战略升级,20万辆无人车开启无人出行万亿级市场变现周期!
  • AT21CSMK100单线EEPROM评估与开发:从硬件连接到协议实现
  • 揭秘 TileLang 编译黑科技,如何让 AMD GPU 算子性能超越预期
  • Tcache attack