首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是"...“在C代码中使用switch-case

问什么是"...“在C代码中使用switch-case
EN

Stack Overflow用户
提问于 2013-09-17 23:10:14
回答 3查看 4K关注 0票数 50

下面是/usr/src/linux-3.10.10-1-ARCH/include/linux/printk.h的一段代码

代码语言:javascript
复制
static inline int printk_get_level(const char *buffer)
{
  if (buffer[0] == KERN_SOH_ASCII && buffer[1]) {
    switch (buffer[1]) {
    case '0' ... '7':
    case 'd':  /* KERN_DEFAULT */
      return buffer[1];
    }
  }
}

它是一种运算符吗?为什么“C编程语言”没有提到它?

EN

回答 3

Stack Overflow用户

发布于 2013-09-17 23:11:50

它是gcc编译器extension,允许在一行中组合多个case语句。

票数 12
EN

Stack Overflow用户

发布于 2013-09-17 23:12:39

注意,它不是标准的C语言,因此不能移植。它是为case语句设计的一种速记形式。它是定义良好的,因为在C中,你只能切换整型。

在标准C中,...仅用于可变长度参数列表。

票数 10
EN

Stack Overflow用户

发布于 2013-09-17 23:13:46

格'0'...'7':case ranges Speciacation在gcc。

case语句的范围规范。

用空格将...括起来,否则当您将其与整数值一起使用时,它可能会被错误地解析

代码语言:javascript
复制
case '0' or case '1' or case '3' and so on case '7':
or case 'b' :
just return buffer[1]; 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18853502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档