Je *_*Rog 8 c compiler-construction switch-statement
#include <stdio.h>
int main(int argc, char *argv[]){
char a = 'c';
switch('c'){
case a:
printf("hi\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以上内容不会为此错误编译:
case label does not reduce to an integer constant
Run Code Online (Sandbox Code Playgroud)
为什么不允许这样做?
想一想,如果你有以下内容怎么办:
int a = 1, b = 1, c = 1;
switch (a)
{
case b: return 1;
case c: return 2;
}
Run Code Online (Sandbox Code Playgroud)
会有什么回报?
案例标签需要保持不变,以便编译器可以证明没有歧义.