使用 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”被标记为 bool 值。 当我使用早期的 gcc 版本(4.1.x)运行这个时。我没有发现任何问题。
最佳答案
您的 X 不是 bool 值,而是 bool 值数组。
因此,if 不检查任何 bool 值,而是检查该数组的地址。
关于c - 在 gcc 4.8 版本中, 'var' 的地址将始终计算为 'true',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055946/