Size: a a a

ESP8266 & ESP32 [RU]

2021 February 18

Сᅠ

Снежинкаᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in ESP8266 & ESP32 [RU]
вот так
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Если уж на то пошло, правильно - по ссылке.
источник

Сᅠ

Снежинкаᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in ESP8266 & ESP32 [RU]
Aleksander Mironov
Если уж на то пошло, правильно - по ссылке.
Да, спасибо, иногда путаю
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Насколько мне известно - уже давно не надо для микрооптимизаций писать консты. Все это анализируется компилятором и генерируется код в зависимости от контекста (изменяется строка внутри или же нет)
Для чего действительно нужно писать консты у всего подряд - так, для безопасности.

Вообще все это анахронизм, оптимизация необходима тогда когда она явно необходима.

Но я еще раз советую автору для наиболее верного и обоснованного ответа таки с таким в С++ кофну.
Этот простой вопрос в силу языка имеет гору подводных камней, на которые мне - стремно отвечать.
источник

Сᅠ

Снежинкаᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in ESP8266 & ESP32 [RU]
Aleksander Mironov
Насколько мне известно - уже давно не надо для микрооптимизаций писать консты. Все это анализируется компилятором и генерируется код в зависимости от контекста (изменяется строка внутри или же нет)
Для чего действительно нужно писать консты у всего подряд - так, для безопасности.

Вообще все это анахронизм, оптимизация необходима тогда когда она явно необходима.

Но я еще раз советую автору для наиболее верного и обоснованного ответа таки с таким в С++ кофну.
Этот простой вопрос в силу языка имеет гору подводных камней, на которые мне - стремно отвечать.
Да, согласен с вами, это уже больше правило хорошего тона, нежели необходимость
источник

Сᅠ

Снежинкаᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in ESP8266 & ESP32 [RU]
Aleksander Mironov
Насколько мне известно - уже давно не надо для микрооптимизаций писать консты. Все это анализируется компилятором и генерируется код в зависимости от контекста (изменяется строка внутри или же нет)
Для чего действительно нужно писать консты у всего подряд - так, для безопасности.

Вообще все это анахронизм, оптимизация необходима тогда когда она явно необходима.

Но я еще раз советую автору для наиболее верного и обоснованного ответа таки с таким в С++ кофну.
Этот простой вопрос в силу языка имеет гору подводных камней, на которые мне - стремно отвечать.
А так могу сказать, что это иногда необходимо для микрооптимизаций, например я столкнулся, когда писал код под  attiny13, где необходимо написать код для 1 КБ внутрисистемно программируемой Flash память программы
источник

SZ

Slava Zagaynov in ESP8266 & ESP32 [RU]
Я вас услышал, спасибо, для чистоты эксперимента я попробую сделать вариант свого говнокода ссылками/указателями, к счастью есть фукнция поиска-замены в любом редакторе. О результатах тестировения сообщу.
источник
2021 February 19

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
спорно. в современном с++ есть такая штука — мув конструктор: https://habr.com/ru/post/174019/
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
если коротко, то мув конструктор позволяет передавать обекты в функцию или возвращать из функции "по значению", но при этом перемещаются указатели на данные между "объектам", что владелец данных всегда остаётся только один и не происходит копирования данных
источник

Сᅠ

Снежинкаᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in ESP8266 & ESP32 [RU]
Anton Petrusevich
если коротко, то мув конструктор позволяет передавать обекты в функцию или возвращать из функции "по значению", но при этом перемещаются указатели на данные между "объектам", что владелец данных всегда остаётся только один и не происходит копирования данных
Кстати, напомнило синглтон
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
синглтон — другой паттерн
источник

С🥔

Скрудж 🥔 in ESP8266 & ESP32 [RU]
Slava Zagaynov
Я вас услышал, спасибо, для чистоты эксперимента я попробую сделать вариант свого говнокода ссылками/указателями, к счастью есть фукнция поиска-замены в любом редакторе. О результатах тестировения сообщу.
Нет смысла, компилятор многие вещи оптимизирует. Указатели/ссылки нужны, когда вы работаете с функциями и чтобы не передавать КОПИЮ массива, вы отдаете ему ссылку на память и работаете с ней. Но надеюсь что компиляторы научили распознавать это и не писать копию в память, когда a = f(a)
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
Скрудж 🥔
Нет смысла, компилятор многие вещи оптимизирует. Указатели/ссылки нужны, когда вы работаете с функциями и чтобы не передавать КОПИЮ массива, вы отдаете ему ссылку на память и работаете с ней. Но надеюсь что компиляторы научили распознавать это и не писать копию в память, когда a = f(a)
зависит от конкретной реализации конструктора копирования, компилятор тут может оказаться не при чём
источник

С🥔

Скрудж 🥔 in ESP8266 & ESP32 [RU]
Конструктора копирования?) Это как?
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
в приведённой картинке был объект строки
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
про нативные массивы я ничего не говорил
источник

С🥔

Скрудж 🥔 in ESP8266 & ESP32 [RU]
У вас либо есть

integer a[10000];

Тогда вы можете либо:
f(a)
либо:
f(&a)

Я не знаю научили ли компиляторы решать (вдруг -О3 уже умеет) проблему передачу ссылки в кейсе a = f(a), но обычно в функции создается копия массива. Никаких конструкторов копирования в природе не существует) Либо вы знаете чего-то, чего не знаю и буду признателен за ссылку на что же такое конструкторы копирования
источник

С🥔

Скрудж 🥔 in ESP8266 & ESP32 [RU]
Anton Petrusevich
в приведённой картинке был объект строки
Строка это массив символов, тот же нативный массив, просто обернут и избавляет людей от боли в пятой точке
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
Скрудж 🥔
Строка это массив символов, тот же нативный массив, просто обернут и избавляет людей от боли в пятой точке
"обёрнутый массив" представляет собой объект определённого класса, в даннмо случае, строки. с++ для каждого класса по умолчанию делает конструкторы копирования и перемещания, операторы присваивания и перемещения, деструктор.
источник

С🥔

Скрудж 🥔 in ESP8266 & ESP32 [RU]
Да, все так говорите
источник