我们使用的库定义了常量,我们有:
const char field[] = "666"
我想:
switch(an_int){
case field:
有没有办法实现这个目标?我得到一个编译器错误,说字段在常量表达式中不可用(GCC 5.2)。
如果可能,我真的希望避免修改字段声明。
答案 0 :(得分:2)
field
是一个数组。它不是switch
上的单一值。
当你将字符数组的内容解释为整数值时,你会尝试switch
。
使用atoi()
或帮助std::istringstream
的{{1}}将数组转换为operator >>
变量,然后int
就可以了
答案 1 :(得分:1)
不,char数组/字符串上不能有switch语句。如果您确定该字段将包含数值,则将char数组转换为整数。