我的C ++代码中有一个宏,宏有一个未使用的变量。我正在警告这个变量 宏是打印类和方法名称
#define LOG_ENTER(func_name, message) \
LOG_SET_METHOD(#func_name) \
LOG_MOD_INTERNAL(TC_TAG(ENTER) << message)
#define LOG_SET_METHOD(name) static const char LOG__METHOD__[] = "::" name "() ";
我们使用的是gcc版本4.4.6 20110731(Red Hat 4.4.6-3)(GCC)。
&#34;警告:未使用的变量&#34; LOG__METHOD __&#34; &#34;
如何抑制此警告?它会造成更多噪音!
答案 0 :(得分:0)
禁用警告的方法:
template <typename T>
void UnusedVar(const T&) {}
然后使用:
UnusedVar(my_var);
转换为void
也是一种常见方式(但不适用于所有编译器):
(void) my_var; // or static_cast<void>(my_var)
答案 1 :(得分:-1)
沉默此警告的常用方法是在虚拟表达式中使用该变量:
int main() {
int i;
i;
}
然而,这会触发&#34;警告:语句无效&#34;,因为i
没有副作用且未使用其值。为了使这个沉默,我们明确地忽略了这个值:
int main() {
int i;
(void)i;
}
然后发出警告。