繁体   English   中英

以下代码有什么作用?

[英]What does the following code do?

static void llist_dtor(void *user, void *element)
{
  (void)user;
  (void)element;
  /* Do nothing */
}

它是无操作功能吗? 然后为什么要完成铸造? 可以将NULL作为其参数之一传递吗?

这确实是一个无操作。 转换为(void)是为了避免使用某些编译器获得“参数从未使用过”警告(转换被优化掉,但参数仍被视为“已使用”)。

您可以传递NULL因为无论如何都会忽略参数。

是的,这是一个无操作功能。

转换是防止编译器抱怨未使用的参数的常见技巧。

是的,这是一个无操作功能,并且放置了void铸造线以避免“未使用的参数”警告。 对于gcc,请在页面中搜索“unused”: http//gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

但是, 如果它是C ++而不是C ,我可能会写得有点不同

static void llist_dtor( void * /* user */, void * /* element */ )
{
  /* Do nothing */
}

请注意,变量名称已注释掉。

那不是无操作。 就像那样,你告诉编译器忽略这两个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM