本文主要是介绍C++报错:case value is not a constant expression,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Qt开发,从一个C#项目中搬过来一段代码,看上去很简单的逻辑,不过报错了:
case value is not a constant expression
也就是switch case后面不支持变量,怎么解决呢?用常量当然可以,不过代码就变得不太友好了。
网上看到一条建议,很简单,不用switch case了,改用if else代替:
if(unit == DT::UNIT_DEG){if (gd > 90) { gd = gd - 180; }if (gd < -90) { gd = gd + 180; }
}
if(unit == DT::UNIT_MIL){if (gd > 1500) { gd = gd - 3000; }if (gd < -1500) { gd = gd + 3000; }
}
效果是一样的。
参考:Expression not constant in switch statem - C++ Forum
这篇关于C++报错:case value is not a constant expression的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!