这个宏是什么意思?#define UNUSED(x)((x)=(x))

1lO*_*91W 4 c c++

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

#define UNUSED(x) ((x)=(x))
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 7

它可能会抑制函数未使用的变量/参数的编译器警告.你也可以用这个:

// C++ only
void some_func(int /*x*/)
Run Code Online (Sandbox Code Playgroud)

要么

// C and C++
void some_func(int x)
{
    (void)x;
}
Run Code Online (Sandbox Code Playgroud)

或者您的编译器可能支持一个标志来执行此操作,但这些标记是可移植的,不会跳过有效警告.

  • @JonathanLeffler:禁止使用C和C ++标记问题……虽然好点,但我会讲清楚。 (2认同)

alk*_*alk 5

使用它来消除任何引用未使用变量的编译器警告。