Я пытаюсь сравнить две целочисленные переменные с одной и той же константой. По-видимому, в этом случае обе переменные имеют одинаковые значения по умолчанию. Я попытался упростить оператор сравнения следующим образом:
if (po->app_tag == po->inst_id == 0)
return 1;
Это не сработало.
Мне пришлось закодировать это так:
if ((po->app_tag == 0) && (po->inst_id == 0))
return 1;
Чтобы это сработало. Может ли кто-нибудь объяснить мне разницу между ними? Почему-то мне кажется, что компилятор C должен предусмотреть такой синтаксис, когда дело доходит до сравнения двух целочисленных переменных. Я могу ошибаться, спрашивая об этом.. :), но хочу понять причину.. Почему я ошибаюсь здесь.
a == b
? - person Eugene Sh.   schedule 03.10.2016