c - C中返回值和错误的区别

标签 c pointers posix

我正在尝试编写一个函数,它接受一个链表、一个索引并返回索引+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;
    }
}

关于c - C中返回值和错误的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58374849/

相关文章:

使用枚举的 C 宏

arrays - 在另一个类中访问没有静态引用的数组 (OOP)

c - 双链表和void指针【find方法】

io - open(2) 中的 O_SYNC 和 O_DIRECT 标志有何不同/相似?

无法确定段错误的原因

数组中的矛盾指针

C - 如何 (*(void (*)()) 代码);在没有任何调用的情况下在 C 程序中运行

c++ - 在 C++ 中更改 char[] 的指针

bash - 为什么 bc 不显示该表达式结果的比例?

c++ - cout << Boost::posix_time 的奇怪行为