【发布时间】:2011-01-10 14:14:59
【问题描述】:
在一些 C 项目中,我见过这样的代码:
static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(void)ud;
(void)osize;
/* some code not using `ud` or `osize` */
return ptr;
}
这两个无效化有什么用吗?
【问题讨论】:
-
投票结束,因为正确的答案(禁止编译器警告未使用的参数)在 Charles 的链接问题中。
-
@Cody Gray - 因为这个原因它被关闭了。然而,它实际上并不是这个问题的重复。 689677 正在讨论将返回值转换为 void,而不是参数。
-
实际上这两个重复项对这个问题都无效。一个是 C++,另一个是关于返回值。 这些不是一回事。是否有任何 C 参数重复?
-
这是一个与建议的重复内容不同的问题。不过,我明白为什么会犯这个错误。重新打开(显然)。
-
注意:请不要将其作为 C++ 问题的副本关闭,因为 C++ 使用
(void)会产生不同的效果。这个问题是关于 C