使用" ..."选择枚举元素

时间:2016-05-19 08:45:37

标签: c enums switch-statement

是' ......' symbol是一个c语言关键字?

代码:

#include <stdio.h>

typedef enum {
    A=0,B,C,D,E,F,G,H,I,J,K,M
} alpha;


int main(int argc, char const *argv[])
{


    alpha table = C;

    switch (table)
    {
        case A ... D:
        /* I have never seen "..." grammar in textbook */
            printf("Oh my god\n");
            break;
        default:
            printf("default\n");
            break;
    }
    return 0;
}

C中是否允许...范围?

2 个答案:

答案 0 :(得分:2)

它不是标准C,而是GCC扩展名:

  

您可以在单个案例标签中指定一系列连续值,如下所示:

case low ... high:
     

这与适当数量的单个案例标签具有相同的效果,每个整数值从低到高,包括一个。

GCC extension: Case ranges

中的更多内容

答案 1 :(得分:1)

这称为案例范围。不,这是标准C功能。

它实现为gcc extension。这只是使用fall-through case statement的另一种方式。