`(void)struct_pointer`的用法是什么?

时间:2012-08-05 12:41:06

标签: c

我现在正在阅读一个项目并找到一些难以理解的代码,如下所示:

struct mcachefs_metadata_t* mdata_root;
...
mcachefs_metadata_release(mdata_root);

mcachefs_metadata_release的定义如下:

void
mcachefs_metadata_release(struct mcachefs_metadata_t* mdata)
{
    (void) mdata;
    mcachefs_metadata_unlock ();
}

mcachefs_metadata_unlock的定义如下:

#define mcachefs_metadata_unlock() mcachefs_mutex_unlock ( &mcachefs_metadata_mutex, "metadata", __CONTEXT );

然后,mcachefs_mutex_unlock函数:

void
mcachefs_mutex_unlock(struct mcachefs_mutex_t* mutex, const char* name,
    const char* context)
{
  int res;
  ...

  mutex->owner = 0;
  mutex->context = NULL;
  res = pthread_mutex_unlock(&(mutex->mutex));
  if (res == 0)
    {
      return;
    }
  ...
}

我无法理解(void) mdata;的意思 mcachefs_metadata_release功能。它的用途是什么?

1 个答案:

答案 0 :(得分:3)

用于抑制unused argument: mdata编译器警告。顺便说一句,这是一种不好的做法。