c - "Comparing constant with boolean expression is always true"警告是什么意思?

标签 c

这个警告是什么意思(ij 不是常量):

我一直在尝试谷歌这个,但它没有给我任何结果。

warning: comparison of constant 10 with boolean expression is always true [-Wtautological-constant-out-of-range-compare]

 if ((0<=i<=10)&&(0<=j<=10)){


在我的程序中,ij不是恒定值,它们确实会发生变化。

最佳答案

C , 像这样链接关系运算符不是有效的设计。因此,

 (0<=i<=10)

没有做你认为应该做的事情。它被评估为
((0<=i) <= 10 )

这基本上是
  • 0 < = 10 , 生产 1 (被认为是 TRUE 值)
  • 1 < = 10 , 还生产 1 (被认为是 TRUE 值)

  • 可悲的是,这两者都比预期的路径要远。

    解决方案:你需要分解你的条件检查
     (0 <= i) && ( i<=10)
    

    关于c - "Comparing constant with boolean expression is always true"警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30807947/

    相关文章:

    c# - 通过引用将具有双成员数组的 C# 结构数组传递给 C DLL

    c - 链接器总是选择系统 libsasldb.so 而不是 LD_LIBRARY_PATH 提供的 libsasldb.so

    c++ - C/C++ 中的 asc 和 chr 等价物

    使用 Delphi 使用 C dll

    c - 为什么要用这个宏?

    c - 冲刺崩溃

    c - 用于计算 C 中 pi 的近似值的循环

    使用循环 shell 命令行调用 popen() 管道流

    C 找不到在不同情况下从文件读取数据的工作算法

    C语言编程——打印句子