Oleg1345140 писал(а): ↑09.09.2018{, 23:01}
Экономией памяти. все же i++ меньше отъесть нежели код описанный выше
по поводу памяти, особенно в проектах FLProg - смешно. тут она и без этого используется, мягко говоря, не оптимально. Чего стоят задвоение переменных при использовании пользовательских блоков да и и использование int там где вполне хватает byte и Long там где хватило бы Uint. Да не будем о грустном.
Ну а что касается кода, то
_gtv1 = (_gtv1)+(1);
по сути тоже самое что и i++; т.е просто математика, это если убрать у переменной разрешение записи
- Inc.png (1.54 КБ) 2091 просмотр
Разница так уж принципиальна? По моему одно и тоже. Мне кажется, что компилятор со мной согласится.
"...большинство современных компиляторов языка Си уже без проблем сами заменяют арифметические выражения x = x + 1 или x += 1 на низкоуровневый инкремент (++x) на этапе оптимизации и компиляции." - Wiki
if (_gtv2) {_gtv1 = (_gtv1)+(1);}
а тут используется переменная с разрешением записи.
- Inc_.png (2.63 КБ) 2091 просмотр
Labu559 писал(а): ↑10.09.2018{, 00:42}
Сколько насчитает математика?
Пока будет разрешение записи - будет считать (один цикл программы - одна операция инкремента), нет разрешения - нет счета.
av писал(а): ↑10.09.2018{, 00:35}
Это столько же переменных для разрешения записи нужно добавить.
А тут уже по обстоятельствам, может несколько а может и ни одной.
Вот такой вариант. 452 и 11 байт.
А использовать еще и счетчик для хранения значения, которое и так хранится в переменной это, на мой взгляд, избыточно.
Особенно в свете "...Экономии памяти..."
P.S. Никто так и не сказал а для чего нужны такие навороты? Начали то с простейших инкремента и декремента.
Отправлено спустя 13 минут 39 секунд:
Сброс при достижении значения делать не стал, если кому нужно то компаратор прилепить секундное дело.