ребят, кто напомнит в си компилер как разворачивает? if(cond1 & cond2 & cond3) сперва проверит cond3 потом cond2 после чего cond3? и если хотя бы одно условие будет фолс то дальше не проверяет все правильно?

Комментарии: 18

  1. Anonim

    1-2-3 Вроде того.

    • Nazar

      я вот не помню в какой последовательности

      • Anonim

        Си вроде не арабы писали

        • Nazar

          и был еще такой факап: if(cond1 == 1 & cond2++ == 1 & cond3 == 1) если первая на пути проверка зафолситься то конд2++ не будет

          • Anonim

            Ну, да

          • Anonim

            В 10ке его тоже нет Какое то говно обгрызанное cond2++ судя по факапу можно безболезненно вынести на первое место в условии

            • Nazar

              или написать перед ифом или после него

            • Anonim

              Ну хоть какое-то, чем вообще ничего

  2. Dmytro

    Если это опечатка и вы имели ввиду && - то да, выполняет до первого неудачного (слева направо). Если там и правда побитовое "и" - то выполнит все

    • Anonim

      Хотя и не слишком корректно Кстати, да

    • Nazar

      да, опечатка спасибо)

      • Anonim

        Ну и кстати, cond1 и cond3 это числовые или булевы переменные?

        • Dmitry

          флаги условий судя по всему

          • Anonim

            Меня cond2 смущает

            • Dmitry

              а, да. инкремент тогда хз зачем )

              • Anonim

                Так то флаги будут гораздо более читаемыми если их сверять с тру/фолс или просто cond || !cond

              • Nazar

                ну например в цыкле перебираешь массив и с каждым прохождением например проверяешь стала ли переменная тому что надо равно и независимо от результата проверки прибавить или убавить единицу

                • Dmytro

                  Есть разные принципы позволяющие не выстрелить себе в ногу на си, вот многие из них сходятся на том, что в if лишнего вставлять не надо. Как пример могу посоветовать misra c

Не нашли ответ?

Вам также может быть интересно

Всем добрый вечер! Уверен тема подсветок и вкладышей подсветок обсуждалась, но я тут недавно, потому хочу поделится своим... Читать далее