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

问题描述 投票:-4回答:1

使用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)运行它时。我没有看到任何问题。

c gcc
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.