区分return值和C中的错误
Differentiate between return value and error in C
我正在尝试编写一个函数,它接受一个链表、一个索引和 return 索引+1 位置的值。
int getData(list *l, int index) {
if(...) {
...
return result; // this could be -1
}
else {
return -1;
}
}
在 C 中,当函数失败时 return 值为 -1(作为一种让用户知道调用因输入错误而失败的方式)。但是,因为这个函数的 return 类型是 int,所以它包括 -1 的值(-1 作为数字,以及 -2、-3 等)
我的问题是:是否有一种机制可以让您从函数中 return 并让函数的用户知道 returned 值实际上是一个错误,而不是值?
Return 值通过传递指针并使 return 值成为错误语句:
int getData(list *l, int inIndex, int* outIndex) {
if(...) {
...
*outIndex = result;
return 0;
}
else {
return -1;
}
}
我正在尝试编写一个函数,它接受一个链表、一个索引和 return 索引+1 位置的值。
int getData(list *l, int index) {
if(...) {
...
return result; // this could be -1
}
else {
return -1;
}
}
在 C 中,当函数失败时 return 值为 -1(作为一种让用户知道调用因输入错误而失败的方式)。但是,因为这个函数的 return 类型是 int,所以它包括 -1 的值(-1 作为数字,以及 -2、-3 等)
我的问题是:是否有一种机制可以让您从函数中 return 并让函数的用户知道 returned 值实际上是一个错误,而不是值?
Return 值通过传递指针并使 return 值成为错误语句:
int getData(list *l, int inIndex, int* outIndex) {
if(...) {
...
*outIndex = result;
return 0;
}
else {
return -1;
}
}