在 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];
    }
}