c - 区分C中的返回值和错误
问题描述
我正在尝试编写一个函数,该函数采用链表、索引并返回 index+1 位置的值。
int getData(list *l, int index) {
if(...) {
...
return result; // this could be -1
}
else {
return -1;
}
}
在 C 中,当函数失败时返回 -1 值(作为让用户知道调用因输入错误而失败的一种方式)。但是,因为这个函数的返回类型是 int,所以它包含了 -1 的值(-1 作为数字,还有 -2、-3 等)
我的问题是:是否有一种机制可以让您从函数返回并使函数的用户知道返回的值实际上是错误而不是值?
解决方案
通过传递指针返回值,并使返回值成为错误语句:
int getData(list *l, int inIndex, int* outIndex) {
if(...) {
...
*outIndex = result;
return 0;
}
else {
return -1;
}
}
推荐阅读
- html - 将 Django 模板中的多个文件名传递给 python 中的视图
- c# - 打破 Hub 中的无限循环
- python - 如何从 Paperspace Free GPU 下载 kaggle 数据集
- javascript - 有什么方法可以用 JS 给很多用户创建邮件?
- c# - 如何使用 Coypu 和 C# 获取 InnerText?
- javascript - 如何在反应表中添加新的可编辑文本字段行?
- android - FCM 在我的活动中每次都生成相同的令牌
- javascript - 轴 #0 的数据列不能是字符串类型 Javascript 错误
- python - 在 tflearn 中出现异常:Feed dict 要求输入名为“targets”的变量,但已知不存在此类变量
- r - 如何使用摘要对新计算进行分组?