gpt4 book ai didi

C:在参数检查时抛出错误还是让它打风扇?

转载 作者:太空狗 更新时间:2023-10-29 14:55:40 25 4
gpt4 key购买 nike

我有一个简单的设计(?)问题。

我正在编写一个简单的程序,它有几个看起来像这样的函数。

float foo (float* m,size_t n){

float result;
//do some calculations, for example a sum


return result / n;
}

我有几个问题,无意重新开启一些圣战。

我应该在 n 上添加健全性检查吗?如果是这样,我应该如何让来电者知道?

返回 -1 在 float 上看起来很奇怪;

float foo(float *m,size_t n){
if (n == 0) return -1f

...
}

我的另一个选择是输出参数

float foo(float *m,size_t n, int *error){

if (n==0){
*error = 1;
return 0f;
}
...
}

更新

有点玩具程序,只是想练习一些东西。这个问题超出了这个事实。也许我应该改写为“如何在没有 (OOP) 异常的情况下处理错误”。

还考虑在调用之前测试 n,但不太喜欢它。

有什么想法吗?提前致谢。

最佳答案

我想您的out parameter 选项不错。但我想换一种方式会更好。使用 out 参数获取结果,返回值表示调用的状态。像这样

int foo(float *m, size_t n, float* result)
{
if(someFailureCondition)
return ERROR; // ERROR being an error integer
// else
// do some calculation
// set your result
return NO_ERROR; // NO_ERROR being an integer
}

编辑:返回值可以更详细地表示输出参数的当前状态。请参阅 Jamesdlin 的评论!

关于C:在参数检查时抛出错误还是让它打风扇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655725/

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