以下代码有什么作用?
static void llist_dtor(void *user, void *element) { (void)user; (void)element; /* Do nothing */ }
它是无操作function吗? 那为什么要完成铸造呢? 可以将NULL作为其参数之一传递吗?
这确实是一个无操作。 转换为(void)
是为了避免使用某些编译器获取“参数从未使用过”警告(转换被优化掉,但参数仍被视为“已使用”)。
您可以传递NULL
因为无论如何都会忽略参数。
是的,这是一个无操作function。
转换是防止编译器抱怨未使用的参数的常见技巧。
是的,这是一个无操作function,并且放置了void
铸造线以避免“未使用的参数”警告。 对于gcc,请在页面中搜索“unused”: http : //gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
但是, 如果它是C ++而不是C ,我可能会写得有点不同
static void llist_dtor( void * /* user */, void * /* element */ ) { /* Do nothing */ }
请注意,变量名称已注释掉。
那不是无操作。 就像那样,你告诉编译器忽略这两个参数。