变量中的语句以防万一

变量中的语句以防万一

本文介绍了切换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:变量中的语句以防万一?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 21:48