区分C中的返回值和错误

bem22

我试图编写一个函数,该函数接受一个链表,一个索引并在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等)。

我的问题是:是否有一种机制可以让您从函数中返回并使函数用户知道返回的值实际上是错误而不是值?

RoQuOTriX

通过传递指针来返回值,并使返回值成为错误语句:

int getData(list *l, int inIndex, int* outIndex) {
    if(...) { 
        ...
        *outIndex = result;
        return 0;
    }

    else {
        return -1;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

区分没有返回值和返回无

来自分类Dev

从C中的struct返回值的逻辑错误

来自分类Dev

从C中的struct返回值的逻辑错误

来自分类Dev

C ++中的返回值

来自分类Dev

bash脚本中的返回值错误

来自分类Dev

从构造函数返回值的C ++错误

来自分类Dev

python中的递归和返回值

来自分类Dev

从 Fetch 中编辑和返回值

来自分类Dev

C ++引用和返回值

来自分类Dev

从C ++ 11中的线程返回值

来自分类Dev

了解C#中的返回值

来自分类Dev

在C ++中通过引用返回值

来自分类Dev

在C ++中通过引用返回值

来自分类Dev

从C中的线程返回值

来自分类Dev

glUnmapBuffer-返回值和错误代码

来自分类Dev

包含错误和返回值的设计模式

来自分类Dev

如何在x86-64上的C和C ++中优化函数返回值?

来自分类Dev

C和C ++中sizeof()运算符的返回值

来自分类Dev

从C#中的方法返回值或错误消息的最佳实践是什么?

来自分类Dev

在C ++中传递int变量-错误检查未返回值

来自分类Dev

错误的返回值模式

来自分类Dev

函数返回值错误

来自分类Dev

在C ++和Java中只有一个返回值的原因是什么?

来自分类Dev

构造函数和返回值优化(rvo)中的C ++通用引用

来自分类Dev

调用存储过程时,在C#中获取返回值和一组记录

来自分类Dev

C ++和优化中缺少返回值的不稳定行为

来自分类Dev

如何处理C中换行和特殊符号的返回值?

来自分类Dev

C ++和优化中缺少返回值的不稳定行为

来自分类Dev

从ADO.NET和C#中的SQL Server获取返回值IDENT_CURRENT