Могут ли параметры для функций не быть введенными в Arduinoui? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Могут ли параметры для функций не быть введенными в Arduinoui? [закрыто]

Сообщение Anonymous »

у меня есть typedef < /p>
typedef struct __attribute__((__packed__)) {
uint16_t firmware_version; // Minor, Major version
uint16_t buildcount;
char build_date[10];
char firmware_name[128];
} firmware_t;
< /code>
Я попытался определить функцию < /p>
void printFirmwareInfo(firmware_t *firmware, size_t len) { ...}
< /code>
Но компилятор был полностью запутался и считал, что PrintFirmwareInfo была переменной или поле, и не мог видеть прошивку в области применения. < /p>
error: variable or field 'printFirmwareInfo' declared void
void printFirmwareInfo(firmware_t *firmware, size_t len) {

error: 'firmware_t' was not declared in this scope
void printFirmwareInfo(firmware_t *firmware, size_t len) {
< /code>
Я в итоге мне пришлось передать параметр как uint8_t * и отбрасывать его в функцию < /p>
void printFirmwareInfo(uint8_t *data, size_t len) {
firmware_t *firmware = (firmware_t *)data;
Serial.printf("Firmware Version: %u.%u\n", firmware->firmware_version >> 8, firmware->firmware_version & 0xFF);
Serial.printf("Build Count: %u\n", firmware->buildcount);
< /code>
это ошибка или как она должна быть? />#include
#include
#include
#include
< /code>
typedef выше функций < /p>
edit
Я думаю, что это причина: < /p>

Arduino имеет свой собственный препроцессор INO> CPP, который также собирает все прототипы функций
и помещает их до определения первой функции. Если
у вас есть, например, функция настройки, а затем ваши Typedefs, то это
не сработает. Просто включите словесную компиляцию и посмотрите на сгенерированный
cpp -файл ... - Kiiv Commondfeb 6 в 18:06 < /p>
< /blockquote>

Подробнее здесь: https://stackoverflow.com/questions/794 ... -arduinoui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»