'var'的地址在gcc 4.8版本中总是评为'true'

时间:2018-01-02 05:24:57

标签: c gcc

使用gcc 4.8.3版本,当我尝试编译我的代码时,我面临以下问题。

错误:'x'的地址将始终评估为'true'[-Werror = address]

        if (x) {
           ^
cc1: all warnings being treated as errors

代码: -

boolean x[MEM_WORD_WIDTH];

if (mm (temp)) {
   intro= etcorn (mmd, with, packing,x, eiP, message);
}
else{
  if (x) {
   //code
  }
}

'x'标记为布尔值。 当我用早期的gcc版本(4.1.x)运行它时。我没有看到任何问题。

1 个答案:

答案 0 :(得分:1)

你的X不是布尔值,而是布尔数组。

因此,if不会检查任何布尔值,而是检查该数组的地址。