Я пытаюсь сравнить две целые переменные с одной и той же константой. По-видимому, в этом случае обе переменные имеют одинаковые значения по умолчанию. Я попытался упростить сравнение, например:Оператор C if, сравнивающий две целые переменные с одной и той же константой
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, что скорее всего не то, что вы хотите: http://stackoverflow.com/questions/18097922/return-value-of- оператор-в-c –
@EugeneSh. да .. сделал основную ошибку ... –