c语言 - 当 int 实际上无效时返回它的原因是什么?



我在Linux内核源代码中遇到了一些奇怪的代码。有xt_register_target()功能:

int xt_register_target(struct xt_target *target)
{
u_int8_t af = target->family;
mutex_lock(&xt[af].mutex);
list_add(&target->list, &xt[af].target);
mutex_unlock(&xt[af].mutex);
return 0;
}
EXPORT_SYMBOL(xt_register_target);

这是一个API函数。因此,它返回的值似乎有一些明显的原因(对于API用户(。但是这个函数没有可变性——它总是返回0。所以基本上是void
产生这种API编码模式的原因是什么?这是最佳做法还是错误?

深入了解git历史,这个函数以前似乎有失败条件,但这些条件后来在这次提交中被删除了。

因此,保持函数的实现不变以防止对调用函数的更改是有意义的。

相关内容

最新更新