Помогите пожалуйста , никак не пойму как мне преобразовать число параметр в String в
const void * для печати на экране. (void epd_disp_string(const void * p, int x0, int y0))
Где TBuf объявлен и что это такое? Код не полный.
Ага, изменился код. Ну хорошо. Все равно не понятно. Почему возвращаемый функцией тип отличается от типа возвращаемой переменной? Да и зачем возвращать из функции значение переменной, которая объявлена глобально? Какой-то звиздец в конструкциях.
Функция используется еще для печати на тфт дисплее и олед дисплее поэтому возращает String. В остальном коде работает нормально. Не работает только в коде, где надо печатать на e-paper дисплее. Там по другому функция вывода на дисплей объявлена в библиотеке…
да , я не смог понять пока что такое const void *p / точнее я так понял что это указатель на данные неопределенного типа. т.е тип я могу использовать любой. поэтому и не могу понять почему он не может принять тип String , хотя явную строку в кавычках берет нормально…
Вы так и не обьяснили про какую переменную говорили ?
Buff массив нужен был для того , чтобы преобразовать числа разной длины к определенной заданной длине (
трех значные когда второе значение 0 например 20 в 020
двух значные когда второе значение 1 или 2 например
1 - 2 в 02:
22 в 22:
2 - 3 в 03
33 в 33
А возвращаю в String т.к все остальные функции где используется моя IS() используют string и чтоб каждый раз не заниматься преобразванием сразу возращаю в стринге…
Проблема возникла только с EPD.
т.е const void *p не может понять String потому что в нем нет завершающего нулевого терминатора ? другими словами я неправильно понял const void* т.е неопределенный тип там не значит что любой ?
Естественно… Этож песочница… Как раз для людей которые не знают языка и его изучают… Или я неправильно понял раздел для новичков…
из учебника
const void *a
Const is defined constant and cannot be modified.
The literality of the Void is “None Type”, and Void * is “free pointer”, and Void * can point to any type of data.
This is defined a pointer A, A can make a value of any type, but it points to the value must be constant, in which case we cannot modify the pointed object, but can make the pointer to other objects.
Therefore, the Void * type pointer, this type of pointer points to the address of the actual storage data, but the data type of the data stored in this address We have not known.
is “free pointer”, and Void * can point to any type of data. - и Void * может указывать на любой тип данных.
Следовательно, указатель типа Void *, этот тип указателя указывает на адрес фактического хранилища данных, но тип данных данных, хранящихся по этому адресу, нам неизвестен.
Ну как перевел так и понял тип данных неизвестен значит может быть любой …
Нет, люди, которые изучают язык, должны в первую очередь пользоваться учебниками, во вторую - форумами по программированию. А здесь - форум по Ардуино, где люди, знакомые с основами программирования и схемотехники, обмениваются соображениями по применению этих двух дисциплин для микроконтроллеров.
Что же касается учебника, то его нужно читать от корки до корки а не обчитывать фрагменты вокруг знакомых слов. Чтобы была понятна структура.
Вот Вам задали вопрос о возвращаемом функцией значении, ка Вы его даже понять не можете.