我的函数从对象返回一个浮点值.如果函数找不到合适的浮点值,则应返回错误,以便我可以在代码中正确处理它.
我的问题是如何返回错误.
添加额外参数并使用它来设置错误标记的选项不是首选.
我可以返回一个神奇的值,这是一个有效的选项吗?我在程序中的浮点值永远不会超过非常大的数字(从不超过10 ^ 12),因此返回FLT_MAX来检查错误可能是一个选项.
有更好的(便携式)方式吗?
返回一个魔法值是唯一的选择,除了设置一个全局(更糟糕)。
最好的解决方案将是修改的原型,喜欢的东西:
bool findAFloat(float *result);
Run Code Online (Sandbox Code Playgroud)
这很清楚,易于使用,而且相当明显。
你也可以去:
float findAFloat(float ifNotFound);
Run Code Online (Sandbox Code Playgroud)
如果没有找到值,让调用者决定返回什么。