在编写函数库时,如果函数参数已经在父库中被检查,是否应该在子库中检查函数参数是否有共识?作为说明,请考虑以下代码片段:
uint8 er_remove(DE_LIST *deque)
{
ER_OBJECT *object;
uint8 result = ER_BAD_ARGUMENT;
if (deque != NULL)
{
result = de_remove_first(deque, (void **)&object);
}
return result;
}
鉴于该函数de_remove_first()
还检查deque
参数以查看它是否为 NULL,在 中再次检查它是否被认为是好的形式er_remove()
?
从功能的角度来看,签到er_remove()
显然是没有必要的。然而,它确实让读者清楚地看到deque
参数被检查,并且它还消除了对de_remove_first()
在未来代码修订中保留的检查的依赖。
有什么想法吗?