在 C 函数调用中返回一个空项
Returning an empty item in a C function call
我想 return 堆栈中的最后一个。类似于以下内容:
Item* get_last_item()
{
if (item_stack_size == 0) {
// return <nothing> ?
} else {
return ItemStack[item_stack_size-1];
}
}
如果堆栈为空,return 与 null
值等效时,建议的做法是什么?这通常应该发出硬错误吗?类似于 (Item*) 0
的值,或者执行此类操作的建议做法是什么?我的第一个想法是做这样的事情,但我不确定是否有更好的方法:
Item* get_last_item()
{
return (item_stack_size != 0) ? ItemStack[item_stack_size-1] : (void*) 0;
}
对于返回指针的函数,NULL 指针可以用作 带外 值(调用者当然应该在取消引用之前检查指针是否为 NULL):
Item *pop_last_item()
{
if (!item_stack_size) {
return NULL;
} else {
return ItemStack[--item_stack_size];
}
}
我想 return 堆栈中的最后一个。类似于以下内容:
Item* get_last_item()
{
if (item_stack_size == 0) {
// return <nothing> ?
} else {
return ItemStack[item_stack_size-1];
}
}
如果堆栈为空,return 与 null
值等效时,建议的做法是什么?这通常应该发出硬错误吗?类似于 (Item*) 0
的值,或者执行此类操作的建议做法是什么?我的第一个想法是做这样的事情,但我不确定是否有更好的方法:
Item* get_last_item()
{
return (item_stack_size != 0) ? ItemStack[item_stack_size-1] : (void*) 0;
}
对于返回指针的函数,NULL 指针可以用作 带外 值(调用者当然应该在取消引用之前检查指针是否为 NULL):
Item *pop_last_item()
{
if (!item_stack_size) {
return NULL;
} else {
return ItemStack[--item_stack_size];
}
}