如何让GCC警告意外的任务

时间:2014-01-06 09:39:13

标签: gcc

当我添加编译器选项-Wparentheses时,我收到警告

warning: suggest parentheses around assignment used as truth value [-Wparentheses]

代码

int x;

if (x = 0)
{
}

if语句中的条件错误地是赋值而不是比较。

现在我想使用这个宏将条件传递给函数:

#define check(condition,message) DoCheck(condition, message)

在该函数condition!=0中执行DoCheck的实际检查。当我使用这个宏时,我想得到错误分配的相同警告:

check(x = 0, "bla");

如何告诉GCC必须将第一个参数视为与if语句的条件类似?

编辑:编码样式的更改会导致无意分配错误:0 == x。这甚至不需要任何额外的手段。但我也想抓住其他错误。

0 个答案:

没有答案