короче я понял в чем трабла студии! Вернее не трабла, а особенность странная. То есть код продолжает выполняться после цикла сразу же после первого прохода этого цикла. Впервые встречаю такое. странная штука вощм

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

  1. Dmitriy

    Есть циклы с пред условием и пост условием....

    • Dinar

      не не не об этом речь

      • Anonim

        А не хотелось ли бы тебе оформить твое чтение байт в функцию, не блокирующую?

        • Andrey

          Это только по прерыванию

          • Dinar

            есть условие что флаг ==1. Если флаг 1 то выполняем цикл три раза. Выходим из цикла, обнуляем флаг, и выходим из условия. Но как оказалось, флаг обнуляется уже полсе первого прохода цикла, и в условие мы уже не попадаем. и 2 и 3 круг цикл не проходит

            • Andrey

              Так это вы так написали и обнуляете

            • Dmitriy

              Вот теперь подумайте где и как выполняем 3 раза для начала ... А ещё можно этот алгоритм углубить ..

              • Andrey

                Давайте этот код с флагом

                • Dinar

                  слушай ну я не первый год в программировании, что ты мне рассказываешь? зайди в java к примеру, с++. Там пока цикл не пройдет нужное количество раз, после цикла строчка не выполнится. а в C выполняется надо же вот я пришел к выводу, что флаги надо ставить везде

                  • Andrey

                    Давайте код

                    • Dinar

                      для меня неожиданность

                      • Andrey

                        Какие флаги

                    • Dinar

                      я уже стер давно все эти коды

                      • Andrey

                        Циклы бывают разные Выйти из них можно даже если это фор до 5

                        • Dinar

                          циклы какие бы они не были, они не должны дать выполниться коду вне цикла ниже по листингку. пока цикл не выполнится n-ное число раз

                          • Andrey

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

                            • Dinar

                              нет конечно

                              • Andrey

                                Тогда он пройдёт именно н раз Как и задумано

                              • Dmitriy

                                Я более уверен, что компилятор наоптимизировал, поэтому нужен был брэйк

                                • Andrey

                                  Этот вариант тоже возможен Скорее всего он коряво развернул цикл

                                  • Dmitriy

                                    Именно .. не нужно самому трогать переменные касательно управления циклом... Для этого есть брэйк, континьюэ и тд

                                    • Andrey

                                      Ну все верно Так везде можно

                                      • Dinar

                                        что там верно? цикл не отработал и уже выполнился код после него

                                        • Andrey

                                          Логика работы кода

                                          • Dinar

                                            никогда такого не встречал

                                            • Andrey

                                              Везде Вы манипулируете счетчиков Для адресации массива должен быть j Параллельный I должен остаться счетчиком Тоже самое будет в плюсах Попробуйте

                                              • Anonim

                                                Все тоже самое в ардуино иде было бы, лол

                                                • Dinar

                                                  да это бред

                                                • Dinar

                                                  никогда такого не делал ну нет же

                                                  • Andrey

                                                    Так чьи это проблемы ?

                                                    • Dmitriy

                                                      Гы )))...

                                                      • Andrey

                                                        Ваш код выполняется именно так как вы это написали

                                                    • Dinar

                                                      я не вижу проблем ваще.

                                                  • Anonim

                                                    Да

                                                  • Anonim

                                                    Прикинь, из под ардуино иде можно весь твой код запустить и будет тоже самое. и регистры ардуина тоже умеет дергать, прикинь

                                                    • Dinar

                                                      если я нарою проект, то скину, там циклов куча была, и ничего не происходила после цикла, пока цикл не отработает заданное количество раз. Я там шаговики крутил. ничего нового не придумывал. То есть код после цикла (количества шагов) не выполнялся. но это на c++ а не на c

                                                      • Anonim

                                                        на HSPI висит. На HW работает на 4МГц, на SW 100кГц

                                                        • Andrey

                                                          Там вы не меняли Счетчик Вы не понимаете проблему данного кода ?

                                                      • Anonim

                                                        for(i=0;i>0;i+=1) { i-=1;//бесконечный цикл }

                                                        • Andrey

                                                          Компилятор разворачивает цикл и манипулирует счетчиком который вы указали как и

                                              • Dmitriy

                                                Здесь компилятор ужаснулся )))

                      • Dmitriy

                        Для норм выходов есть break

                        • Dinar

                          мне не надо выходить из цикла как раз таки

                          • Dmitriy

                            После 3х?

        • Dinar

          да там код блокировался

          • Anonim

            Функция1: складывает байты в глобальный массив, когда ее вызывают и то если что-то пришло. Функция2: получает строку байт, из глобального массива адекватно сформированную. Маин-код: вызывает ф1 и если строка сформирована - вызывает ф2 и делает что-то с этими данными. Если строка не сформирована - ничего не делать.

            • Andrey

              Как и в спп и ява

              • Dinar

                Смотри! я обнуляю нулевой элемент массива, и цикл внутри условия уже не выполняется 2-й и 3-й раз. потому что уже условие recieve[0] == 'p' не выполняется. впервые такое встречаю

    • Andrey

      + Сишный код будет везде одинаково выполнятся Не зависимо от среды и тулчейна

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

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

Это плохо что нельзя через мощную программу удалить полностью системную программу Хакеры могут так? Удалить полностью системную... Читать далее