gpt4 book ai didi

c++ - 警告 : "Not all control paths return a value" c++

转载 作者:行者123 更新时间:2023-12-03 12:49:24 27 4
gpt4 key购买 nike

我不明白我的小功能的这个警告:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com