6

这个宏是什么意思?我只是在源文件中找到以下宏:

#define UNUSED(x) ((x)=(x))
4

4 回答 4

9

It is probably there to suppress compiler warnings of unused variables/arguments to functions. You could also use this:

// C++ only
void some_func(int /*x*/)

Or

// C and C++
void some_func(int x)
{
    (void)x;
}

Or your compiler may support a flag to do so, but these are portable and won't skip over valid warnings.

于 2013-11-15T07:46:08.297 回答
5

Use it to get rid of any compiler warning referring an unused variable.

于 2013-11-15T07:46:13.480 回答
2

一些编译器会发出关于未使用变量的警告 - 已定义但从未引用的变量。有时您的代码仅在某些条件 ifdef 下(仅在某些平台上或仅在调试中)引用变量,并且在定义变量时复制这些条件是不方便的。在这种情况下,可以使用这样的宏来抑制未使用的变量警告。

于 2013-11-15T07:49:05.857 回答
1

它使编译器不再抱怨未使用变量。

其他方法:

  • 完全删除变量:void foo( int )
  • 注释掉变量:void foo( int /* value */ )
  • 使用该宏:void foo( int value ){ UNUSED(value); }
于 2013-11-15T07:46:16.593 回答