【发布时间】:2017-06-15 12:42:20
【问题描述】:
对于我的小功能,我不明白这个警告:
int Fct_name (int nb1, int * nb2)
{
switch (Dest)
{
Case 1 :
return Fct_1(nb1,nb2);
Case 2 :
return -1;
}
}
如果有人可以帮助我?
【问题讨论】:
-
如果
dest不是 1 或 2 会怎样? -
你没有
default案例 -
我尝试设置默认情况,但警告仍然存在。 Dest 只能是 1 或 2(它是一个枚举)
-
看看What happens if you static_cast invalid value to enum class? 和What happens if you static_cast invalid value to enum class?。根据编译器的不同,您可以编写
DEST Dest = (DEST)3;,它仍然可以编译,而Dest可以保存3。 -
由于
Dest是枚举类型,case语句应该使用枚举数而不是它们的值。
标签: c++ compiler-warnings