案例中的C ++类型转换常量字符串

时间:2015-04-17 07:11:03

标签: c++ string casting case

我想使用已定义的程序字符串字符 在转换案例中。

要清除,我的定义看起来像这样

#define COMMAND "c"

在另一部分中,我想在案例陈述中使用此符号。

switch ( sign )
{
  case COMMAND:
  break;
  ....
}

我知道这是不允许的,但有没有办法将它强制转换为char(它只是一个char)?我面临的问题是,编译器是抱怨的原因 它不再是常数......

谢谢你!

1 个答案:

答案 0 :(得分:2)

为什么不将其定义为您想要的?喜欢这个

#define COMMAND 'c'

但等等......应该尽可能避免使用宏,你以前没有听说过吗?所以也不要这样做。这样做:

 constexpr char command = 'c';

或者如果你有多个命令,那么枚举会更好:

 enum class command_type : char
 {
    command0 = 'c',
    command1 = 'd',
    command2 = 'e',
    //..
 };