Ну перепиши библиотеку, если тебе так сильно хочется. Или ты думаешь, что “оно само” преобразуется в массив чаров? Нет. Это происходит в самой библиотеке просто…
Вот эту попробуй:
Спасибо. обязательно попробую.
Ты правда считаешь, что сменить библиотеку дисплея - это более простой метод, чем написать функцию из пяти строчек?
Нет предела лени…
зачем тебе много массивов? Сделай один массив и используй последовательно для печати всех переменных
Вот такой ещё способ нашёл ![]()
typedef struct {
char data[100];
} charStruct;
charStruct func() {
charStruct sc;
strcpy(sc.data, "Hello!");
return sc;
}
Но полагаю работает это так же как и String…
Странный код какой-то.
Всё равно ведь структура charStruct sc - локальная, да и что, для каждой новой строки свою функцию писать?
И, Serial вроде, структуры не выводит…
P.S. А..дошло, догадался Штирлиц…это юмор такой наверное))
В отличии от просто массива (локального), когда он “завернут” в структуру - return sc возвращает копию всей структуры.
Как возвращает? Где лежит структура? Как ей пользоваться после получения и как она долго проживёт?
Ну я полагаю как-то так:
typedef struct {
char data[100];
} charStruct;
charStruct func() {
charStruct sc;
strcpy(sc.data, "Hello!");
return sc;
}
charStruct res = func();
Serial.print(res.data);
на выходе, канеш, создаётся временная структура, и работать возврат будет правильно, при условии, что будет правильно реализован копирующий конструктор. Конструктор по умолчанию даст только горе и слёзы.
Вопрос в другом - нафига это все , оборачивать строку в свою доморощенныею структуру и потом мучаться с ее возвратом? То есть, в итоге, заставить работать это можно, но как по мне, это типичный “индийский код”
Ребята, спасибо, разбираюсь с полученной информацией.
Особого веселья ситуации добавит наличие у структуры конструктора ![]()
Извини, дошло наконец. Идею понял.
У меня вопрос. А зачем весь этот огород, нельзя snprintf() использовать что-ли?
Низя ![]()
Ну ладно, snprintf() отпадает. Не работает с float. Но itoa() и dtostrf() тоже нельзя?
Если нет, то почему? (в целях самообразования)
Евгений запретил - этого не достаточно разве?
И я запрещаю всё, кроме dtostrf(). Пользуйся им, пока можно.