Змінюй хід війни! Допомагай ЗСУ!

Требуется услуги специалиста на Arduino

🔴 12:42 Повітряна тривога в Харків.обл.
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #41
Наприклад різні задрочки з вказівниками - повернення функцією вказівника наприклад. Юзав колись? Ну окрім випадків використання готових функцій виділення пам'яті.
А чому? Бо муторно. В плюсах об'єкти автоматом передаються за посиланням, там ти постійно повертаєш вказівники фактично, а тут це муторно та нах не треба по суті, якщо треба якісь масиви в функцію чи назовні ганяти, то цей масив вже створений та передається й повертається як аргумент - але так простіше й зрозуміліше.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #42
Наприклад різні задрочки з вказівниками - повернення функцією вказівника наприклад. Юзав колись?

Кожного дня юзаю.

Приклади:
1. Кастомні реалізаціі функцій що працюють зі строками. Ті яких немае у стандартних лібах.
2. Вказівник на строку або на двомірний массив що залежить від аргументу. Наприклад, функія що вертає зрозумілй опис помилки в залежності від коду помилки.
3. Вказівник на массив вказівників функцій що є інтерфейсом драйверу. Единий інтерфейс та дохуя драйверів, ти береш той що тобі треба.

Взагалі якщо навчитися юзати вказівники це добряче полегшує життя.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #45
Либо остутсвует понимание задачи, либо навык формализации задачи в ТЗ, либо это R&D в полный рост и значит так и должно быть.
Все в куче плюс еще с десяток причин... Это нормальная ситуация на стадии разработки...


Вообще нихера не разумная. Ардуино нано на сраной 168-й меге и BluePill на STM32F103C8T6 стоятодинаково 1,7 доллара на Али. Только процы отличаются как Запорожец от Белаза.
Похрен. "пара баксов" - это разумно.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #47
Код:
String inputString = "";         // a string to hold incoming data

  // reserve 200 bytes for the inputString:
inputString.reserve(200);
Подскажите, плз, что именно делает reserve?
Я правильно понимаю, что резервирует обьем памяти под переменную в 200 байт? Т.е. можно самому определить обьем памяти для переменной? Увеличить? Уменьшить?
Сорри, пытался загуглить - не нашел. В первый раз столкнулся....
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #48
Да хрен его знает. Если это Ардуина, то наверное какая то кастомная реализация класса String. Попробуй передать туда параметр равный обьему ОЗУ целевого камня, если программа наебнется или метод вернет ошибку, то так и есть.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #49
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #50
Наприклад різні задрочки з вказівниками - повернення функцією вказівника наприклад. Юзав колись? Ну окрім випадків використання готових функцій виділення пам'яті.
А чому? Бо муторно. В плюсах об'єкти автоматом передаються за посиланням, там ти постійно повертаєш вказівники фактично, а тут це муторно та нах не треба по суті, якщо треба якісь масиви в функцію чи назовні ганяти, то цей масив вже створений та передається й повертається як аргумент - але так простіше й зрозуміліше.

В плюсах ты можешь безнаказанно использовать Cшный синтаксис и передавать &myarray[0]. Кто мешает?
Я вообще не понял что за проблема такая.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #51
:незнаю:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Мдя! А я ведь искал, но видимо - хреново... Спасибо!

Хотя, я так и не понял... Выделил ячейку в 20 байт, загнал туда строчку в 40+ байт. Все нормально влезло.... :незнаю:
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #52
Хотя, я так и не понял... Выделил ячейку в 20 байт, загнал туда строчку в 40+ байт. Все нормально влезло....
Это означает одно - либу писали рукожопы, которые забили болт на проверку длины передаваемого аргумента.
Оно то влезло, но это до поры до времени, пока за выделенным массивом есть незанятая память, а если там лежали какие то переменные то будут перетерты и программа будет работать неправильно или вообще все рухнет.
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #53
В плюсах ты можешь безнаказанно использовать Cшный синтаксис и передавать &myarray[0]. Кто мешает?
Я вообще не понял что за проблема такая.
Да и в Си никто не мешает передавать просто имя массива в качестве аргумента.

func(array) эквивалентно func(&array[0]).
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #54
либу писали рукожопы
не обязательно
может быть он неявно цепляет realloc
а может - "загнать 40 байт" - можно, но там останется только 20 байт :D можно и 100500 загнать
загнал туда строчку в 40+ байт. Все нормально влезло....
по какому критерию "влезло"?
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #55
Да и в Си никто не мешает передавать просто имя массива в качестве аргумента.
плюсы хороши rtti, темплейтами и операторами, но операторы - это птичий язык и write-only стиль,
темплейты лучше избегать если пишете не для экспериментов, а rtti не влезут :D:D:D
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #57
а может - "загнать 40 байт" - можно, но там останется только 20 байт :D можно и 100500 загнать

по какому критерию "влезло"?
Вот я так и думал... А оказалось, что сколько загнал, столько и обратно вылезло... ;-(
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #58
Это означает одно - либу писали рукожопы, которые забили болт на проверку длины передаваемого аргумента.
Оно то влезло, но это до поры до времени, пока за выделенным массивом есть незанятая память, а если там лежали какие то переменные то будут перетерты и программа будет работать неправильно или вообще все рухнет.

Гм.. ;-)
Я ограничил на 20 байт
Загнал туда 40.
После сего - выкинул обратно переменную.
Оказалось, что пох на ограничения. Сколько загнал, столько и вылезло.
:незнаю:
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #59
Вот я так и думал... А оказалось, что сколько загнал, столько и обратно вылезло... ;-(
поздравляю
значит оно кучу переопределяет
в принципе - ничего страшного, как для Ардуины :D:D:D
 
  • 🔴 12:42 Повітряна тривога в Харків.обл.
  • #60
Гм... Я тут ковырялся и наткнулся на вариант "ардуины на процессоре STM32". ну, по крайней мере для меня оно так звучит. Я так понял, побольше возможностей за меньшую цену... Захотелось поковырять... ;-)
речь об этом:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Вопрос, а может еще что-то похожее есть?
 
Назад
Зверху Знизу