【发布时间】:2016-10-03 18:14:52
【问题描述】:
我正在尝试将两个整数变量与同一个常量进行比较。显然在这种情况下,两个变量都具有相同的默认值。我试图像这样简化比较语句:
if (po->app_tag == po->inst_id == 0)
return 1;
没用。
我不得不这样编码:
if ((po->app_tag == 0) && (po->inst_id == 0))
return 1;
让它发挥作用。谁能给我解释一下两者的区别?不知何故,我觉得 C 编译器在比较两个整数变量时应该提供这种语法。我要求它可能是错误的.. :),但想了解一个原因.. 为什么我在这里错了。
【问题讨论】:
-
你知道表达式
a == b可以返回哪些值吗? -
当您将一个变量与另一个比较的结果进行比较时,您将它与 0 或 1 进行比较,这可能不是您想要的:stackoverflow.com/questions/18097922/…
-
@EugeneSh。是的..犯了一个基本的错误......
-
@ChintanShah Woah...你反应很快...
-
这次更快..:P
标签: c if-statement integer constants comparison-operators