1

私は今プロジェクトを読んでいて、以下のようにいくつかのコードを理解するのが難しいと感じています:

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それの使用法は何ですか?

4

1 に答える 1

3

unused argument: mdataコンパイラの警告を抑制するためです。ちなみに、かなり悪い習慣です。

于 2012-08-05T12:43:34.623 に答える