c - 在 C 函数调用中返回一个空项
问题描述
我想返回堆栈中的最后一个。类似于以下内容:
Item* get_last_item()
{
if (item_stack_size == 0) {
// return <nothing> ?
} else {
return ItemStack[item_stack_size-1];
}
}
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];
}
}
推荐阅读
- cmake - if 语句在 cmake 中使用宏
- javascript - React App JS - 如何引用静态 JSON 文件
- slurm - 指定用于 slurm 阵列作业的节点
- javascript - package.json 的位置
- snakemake - “错误:没有这样的文件或目录”用于必须首先生成的输入
- android - 如何将 QR 码放在警报对话框中?
- r - 如何在 R 中的字母数字字符串中获取数字/字母索引模式?
- deep-learning - 计算 RoBERTa 的内存使用量?
- html - 如果网页上存在,则关闭弹出窗口
- c - Windbg Windows 堆栈中的 RBP 寄存器值