Tyl*_*ler 1 c++ controls warnings function void
不明白为什么我收到"控制可能达到无效功能的结束"的警告.有什么建议?
这是我的代码:
long double geo_fn(long reps, int seed) {
double x, y, pythag_sum, total = 0, inside = 0;
default_random_engine engine(seed);
uniform_real_distribution<double>dist(0,1);
for(int i = 0; i< reps ;i++){
x = dist(engine);
y = dist(engine);
pythag_sum = (x*x)+(y*y);
if (pythag_sum <= 1){
inside += pythag_sum;
total += pythag_sum;
}
else {
total += pythag_sum;
}
return (inside/total)/10;
}
}
Run Code Online (Sandbox Code Playgroud)
Die*_*ühl 11
如果使用0循环的第一个参数调用该函数,则永远不会执行该return函数,因此永远不会达到该语句.非void函数结束的下降是未定义的行为.
我个人的猜测是,该return语句意味着向上一级,即在out区块中:这将保证该函数始终返回一个值并且警告将消失.