开发者

What does the following code do?

static void llist_dtor(void *user, void *element)开发者_C百科
{
  (void)user;
  (void)element;
  /* Do nothing */
}

Is it no-operation function? Then why is casting done? Is it ok to pass NULL as one of its parameters?


That's indeed a no-op. The casts to (void) are here to avoid getting "parameter never used" warnings with some compilers (the casts are optimized away, but the parameters are still considered as "used").

You can pass NULL since the parameters are ignored anyway.


Yes, this is a no-op function.

The casting is a common trick to prevent the compiler complaining about unused parameters.


Yes, this is a no-op function and void casted lines are placed to avoid the "unused parameter" warning. For gcc, search for "unused" in the page: http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

However, if it were C++ instead of C, I would probably write it little differently as

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

Note that the variable names are commented out.


That is not no-op. Like that you tell the compiler to ignore those two arguments.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜