且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C语言中switch case语句可变参实现方法(case 参数 空格...空格 参数 :)

更新时间:2021-07-30 15:06:53

正常情况下,switch case语句是这么写的:

switch(参数)
{
    case 1 : ... ; break ;
    case 2 : ... ; break ;
    default:
           ... break ;
}

这种是我们最常见的写法,当然也可以这么写:

switch(参数)
{
    case 1: case 2 : case 3 : case 4 :
        ...
        ;break ;
    default :
        ...
        ;break ;
}
接下来说一种不常见的,但是对于多参数有很大的帮助的写法:

先给一个程序:

#include <stdio.h>

int main()
{
    int i ;
    for(i = 0 ; i < 11 ; i++)
    {
        switch(i)
        {
           case 1 ... 5 :
                printf("%d\n",i); break ;
           case 6 ... 10 :
                printf("%d\n",i); break ;
           default:
                printf("First:%d\n",i); break ;
        }
    }
    return 0;
}
运行结果:

First: 0 

1

2

3

4

5

6

7

8

9

10

这种case 参数 空格...空格 参数的写法就是switch case语句的可变参形式写法,只要是标准C可以编译通过,不过这样的写法在GNU C中较为常见,读过linux内核的一定不陌生。