第一次见到这种switch-case 的语法是在linux source code 中,自己仿真写了一个小测试程序。
#include
<
stdio.h
>
int main()
{
int nr = rand() % 128 ;
int * idx = & nr;
switch (nr) {
case 1 : * idx = 0 ; break ;
case 2 4 : * idx = 1 ; break ;
case 5 16 : * idx = 2 ; break ;
case 17 64 : * idx = 3 ; break ;
case 65 128 : * idx = 4 ; break ;
default :
return 0 ;
}
return 0 ;
}
int main()
{
int nr = rand() % 128 ;
int * idx = & nr;
switch (nr) {
case 1 : * idx = 0 ; break ;
case 2 4 : * idx = 1 ; break ;
case 5 16 : * idx = 2 ; break ;
case 17 64 : * idx = 3 ; break ;
case 65 128 : * idx = 4 ; break ;
default :
return 0 ;
}
return 0 ;
}
这种switch-case 的语法在MS 的编译器好像还没有支持,至少到VS 2005 的编译器还没有支持这样的语法,GCC 是可以支持这样的语法的。 不知道这种语法是否已经是Cor C++ 规范中的语法了。