2016-05-19 76 views
1

'...'符号是c语言关键字吗?使用“...”选择enum元素

代码:

#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 ...的范围是多少?

+0

我认为这是特定于gcc编译器,但我不知道。 –

回答

2

这不是标准的C,但GCC扩展:

您可以在一个单一的情况下,标签指定一系列连续的值,比如:

case low ... high: 

这有同样的效果适当数量的个别案例标签,每个整数值从低到高包含一个。

GCC extension: Case ranges