ISO C中的(x

ISO C中的(x,c,conditional-statements,C,Conditional Statements,我已经看到了如下的条件语法,在示例代码中显示了很多检查整数值y是否在两个边界x和z之间的内容: 我想我以前用过这个,但是在我运行测试的一小段代码中,条件的计算结果总是真的。。。 现在我怀疑自己的记忆力,因为我几乎可以肯定我以前用过它!ISO C中是否允许使用语法?我只是期待它做一些它不该做的事吗 老式的: if (x >= y && x <= z) { //... } 仍然很有魅力,所以我还没有完全进入回忆的曲折阶段 我猜所有x,y,z都是整数类型,比如int或l

我已经看到了如下的条件语法,在示例代码中显示了很多检查整数值y是否在两个边界x和z之间的内容:

我想我以前用过这个,但是在我运行测试的一小段代码中,条件的计算结果总是真的。。。 现在我怀疑自己的记忆力,因为我几乎可以肯定我以前用过它!ISO C中是否允许使用语法?我只是期待它做一些它不该做的事吗

老式的:

if (x >= y && x <= z) { //... } 
仍然很有魅力,所以我还没有完全进入回忆的曲折阶段

我猜所有x,y,z都是整数类型,比如int或long。请注意,NaN!=楠

第一,如果x我猜所有x,y,z都是整数类型,比如int或long。请注意,NaN!=楠


第一个if x如果您成功编译并运行了它,那么它很可能是允许的-但它很可能没有做您期望它做的事情。@MattiVirkkunen它编译时带有一个警告和gcc:Comparison like'X@Jean-克劳迪尔鲍特:GCC能为你抓住这一点真是太好了。这在逻辑上是错误的。然而,如果你研究C运算符的语法和含义,你会自己意识到它不是一个正确的代码。@pablo1977:在什么意义上正确?它是有效的C语法,它编译,它运行。它在语义上并没有达到许多人所期望的效果。如果你成功编译并运行了它,那么它很可能是允许的——但它很可能没有达到你所期望的效果。@MattiVirkkunen它编译时带有一个警告:类似于X@Jean-克劳迪尔鲍特:GCC能为你抓住这个机会真是太好了。真是太好了逻辑上是错误的。然而,如果你研究C运算符的语法和含义,你会自己意识到它不是一个正确的代码。@pablo1977:在什么意义上正确?它是有效的C语法,它编译,它运行。它在语义上并没有达到很多人期望的效果,你可以假设正确的,经过编辑的OP来澄清。你的第一个副词的结尾让我想起了亚当·韦斯特……你假设正确,编辑了OP来澄清。你第一次吃晚饭的结束让我想起了亚当·韦斯特。。。
if (x >= y && x <= z) { //... }