разное потребление ресурсов памяти при казалось бы однотипном коде
- Войдите на сайт для отправки комментариев
Сб, 17/02/2018 - 16:18
заметил, что если при опросе пинов, номера заданы явно - то памяти требуется меьнше, чем если через переменную...
int BTN[8] = {6,7,8,4,5,2,3,1};/* -, + , сброс, K1+-, K2= , K3=, K4=, датчик */ bool btn_b[8]={0,0,0,0,0,0,0,0}; void setup() {} void loop() { for (int i = 0; i < 8; i++) { btn_b[i]=!digitalRead(BTN[i]); } /*опрос физических кнопок*/ } Скетч использует 740 байт (2%) памяти устройства. Всего доступно 30720 байт. Глобальные переменные используют 33 байт (1%) динамической памяти, оставляя 2015 байт для локальных переменных. Максимум: 2048 байт.
и
int BTN[8] = {6,7,8,4,5,2,3,1};/* -, + , сброс, K1+-, K2= , K3=, K4=, датчик */ bool btn_b[8]={0,0,0,0,0,0,0,0}; void setup() {} void loop() { for (int i = 0; i < 8; i++) { btn_b[i]=!digitalRead(i); } /*опрос физических кнопок*/ } Скетч использует 692 байт (2%) памяти устройства. Всего доступно 30720 байт. Глобальные переменные используют 17 байт (0%) динамической памяти, оставляя 2031 байт для локальных переменных. Максимум: 2048 байт.
16 байт ОЗУ экономии на ровном месте выходит....
А если ТС включит ум и протрет глаза. Намек где const коде? или #define
Вот что животворящий const делает
они тут не причем- внимательнее сравните оба кода
или вы можете сделать с дефайном/константой код более легким и выполняющим этоже самое действие?
И вновь нечестный Си. Проср... утерял массив из восьми элементов по два байта, скотина такая.
он не утерял
если взять отдельно любое дейтсиве с массивом в лупе - тоесть он будет явно задейтвован - то разница в 16 байт останется
Ну, и чем вопрос? Использовали массив - +16байт, не испоьзовали - +0байт.
Компилятор наперсточниками писан - постоянно туда-сюда байты прячет, добавляет. Смиритесь уже.
Не, ну точно: "аналогичные операции, функции, конструкции отлично работают в php, js, jass( хотя он сильно урезаная версия java) paskal но вот в "С" они странным образом глючат на ровном месте".
Надо срочно переходить с этого богомерзкого "С" на тёплый, ламповый "paskal".
О, изморозь столкнулась с оптимизацией компилятора :) Завтра откроет ещё чего-нибудь нового. Посоны, только не говорите ему, что можно подробный вывод сообщений компилятора в IDE включить, и тогда во втором случае ему вывалится warning про unused variable :)
заметил, что...
Наблюдательный!
16 байт ОЗУ экономии на ровном месте выходит....
сделай так и подумай, почему получается экономия:
твоя логическая ошибка в том, что ты сравниваешь два кода с разным функционалом - результат сравнения может быть любой.
предлагаю не отсанавливаться на достигнутом, а и сравнимать всё со всем... например, яблоки с грушами - оба казалось бы(с) фрукты, а по вкусу отличаются. О_О