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