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