我们在阅读一些代码时会看到一些类似下面的宏定义:
#define UNUSED_PARA(x) (void)(x)
一开始比较奇怪使用这个宏定义的意义在哪里,后来在看一些开源项目时才有一些体会。首先这种void用法,x必须被定义过,目的是不让compiler出现未使用某些参数造成的warning。在构建项目时,有些要求比较严谨,会加上-Werror这个编译选项,它的作用是将所有warning信息视为编译错误。为了不让编译中断,所以要使用UNUSED_PARA(x) 去处理一些未使用的变量。
例如下面的程序:
int32_t adi_ad9528_ClockRatesRead(adi_ad9528_Device_t *device, uint32_t *outputClock_Hz)
{
UNUSED_PARA(device);
UNUSED_PARA(outputClock_Hz);
return ADI_COMMON_ACT_NO_ACTION;
} //debug function to help verify data structure is setup correctly.