作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白我的小功能的这个警告:
int Fct_name (int nb1, int * nb2)
{
switch (Dest)
{
Case 1 :
return Fct_1(nb1,nb2);
Case 2 :
return -1;
}
}
有人可以帮助我吗?
最佳答案
这是因为,正如警告所说,并非所有代码路径都会返回值,而函数具有不同的返回类型,告诉编译器“嘿,我要返回一些东西”。但如果 Dest
不是 1 或 2,您实际上不会这样做。
您评论过:
Dest can only be 1 or 2 (it's an enum)
是的,好的,但是只有你知道这一点,你的编译器不知道,而且它不会相信你的话。它只能看到代码的静态属性,无法预测运行时将如何运行,因此它不会接受您的代码。据它所知,Dest
可以通过外部代码段等进行更改。
您应该添加某种默认值:
int Fct_name (int nb1, int * nb2)
{
switch (Dest)
{
case 1 :
return Fct_1(nb1,nb2);
case 2 :
return -1;
}
return 0;
}
关于c++ - 警告 : "Not all control paths return a value" c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44567830/
我是一名优秀的程序员,十分优秀!