1
我現在讀的項目,並找到了一些硬代碼的理解,象下面這樣:`(void)struct_pointer`的用法是什麼?
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
的definitioin是如下:
#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
功能。它的用法是什麼?
有什麼選擇? – Christoph 2012-08-05 12:44:39
@Christoph - 編寫一個不帶參數和/或擺脫全局的新函數。 – Hogan 2012-08-05 12:45:33
@Hogan:這隻適用於這種特殊情況 - 有正當的理由可以使用未使用的參數(API設計,通用簽名的必要性,例如通過函數指針進行多態性時......) – Christoph 2012-08-05 12:51:33