这个宏是什么意思?我只是在源文件中找到以下宏:
#define UNUSED(x) ((x)=(x))
答案 0 :(得分:7)
可能存在抑制函数未使用的变量/参数的编译器警告。你也可以用这个:
// C++ only
void some_func(int /*x*/)
或者
// C and C++
void some_func(int x)
{
(void)x;
}
或者您的编译器可能支持一个标志来执行此操作,但这些标记是可移植的,不会跳过有效警告。
答案 1 :(得分:4)
使用它来删除引用未使用变量的任何编译器警告。
答案 2 :(得分:2)
某些编译器会发出有关未使用变量的警告 - 已定义但从未引用过的变量。有时您只有在某些条件ifdef下引用变量的代码(仅在某些平台上或仅在调试中),并且在定义变量时复制这些条件是不方便的。在这种情况下,可以使用这样的宏来抑制未使用的变量警告。
答案 3 :(得分:1)
它使编译器无法抱怨没有使用变量。
其他方法:
void foo( int )
void foo( int /* value */ )
void foo( int value ){ UNUSED(value); }