本文介绍了切换C:变量中的语句以防万一?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#include <stdio.h>
int main(int argc, char *argv[]){
char a = 'c';
switch('c'){
case a:
printf("hi\n");
}
return 0;
}
上面不会针对此错误进行编译:
The above won't compile for this error:
case label does not reduce to an integer constant
为什么不允许这样做?
推荐答案
明确允许编译器使用高效的二叉树或跳转表以评估case语句。
The compiler is explicitly allowed to use an efficient binary tree or a jump table to evaluate case statements.
因此,case语句是编译时间常数。
For this reason, case statements are compile time constants.
这篇关于切换C:变量中的语句以防万一?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!