This question already has answers here:
Closed 3 years ago.
What is “…” in switch-case in C code
(4个答案)
“…”符号是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中是否允许...范围?

最佳答案

它不是标准C,而是GCC扩展:
可以在单个大小写标签中指定连续值的范围,如下所示:

case low ... high:

这与适当数量的单个大小写标签具有相同的效果,从低到高,每个整数值对应一个大小写标签。
GCC extension: Case ranges

关于c - 使用“…”选择枚举元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37318196/

10-10 14:51