我有兴趣创建一个用于消除未使用的变量警告的宏.
此问题描述了一种通过在函数代码中编写宏来抑制未使用的参数警告的方法:
但是我对可以在函数签名中使用的宏感兴趣:
void callback(int UNUSED(some_useless_stuff)) {}
这就是我用谷歌挖出来的(来源)
#ifdef UNUSED
#elif defined(__GNUC__)
# define UNUSED(x) UNUSED_ ## x __attribute__((unused))
#elif defined(__LCLINT__)
# define UNUSED(x) /*@unused@*/ x
#elif defined(__cplusplus)
# define UNUSED(x)
#else
# define UNUSED(x) x
#endif
Run Code Online (Sandbox Code Playgroud)
这可以进一步扩展到其他编译器吗?
编辑:对于那些无法理解标记如何工作的人:我想要一个C和C++的解决方案.这就是为什么这个问题被标记为C和C++的原因,这就是为什么只有C++的解决方案是不可接受的.
在实现存根等时,您希望避免使用"未使用的变量"警告.多年来,我遇到过UNUSED()宏的一些替代方案,但从来没有一个被证明适用于"所有"编译器,或者标准是气密的.
或者我们为每个构建平台坚持使用#ifdef块?
编辑:由于非c兼容替代品的许多答案,我想澄清我正在寻找一个对C和C++,所有口味等都有效的定义.