Wątek przeniesiony 2018-11-08 11:59 z C/C++ przez Marooned.

Mam problem przy kompilacji(Arduino 1.6.12)

0

Mam problem przy kompilacji(Arduino 1.6.12) Kompilator zatrzymuje się:
uint8_t entType = HAL::readFlashByte((const prog_char*)&(ent->menuType));// 0 = Info, 1 = Headline, 2 = submenu ref, 3 = direct action command
błąd:
ui.cpp:2016: error: expected primary-expression before 'const' uint8_t mtype = HAL::readFlashByte((const prog_char*)&(men->menuType));
^
Nie znam dobrze C .
Nie rozumie :: ,,& (HAL::readFlashByte((const prog_char)&(men->menuType));

0

Ziomal, zapodaj kod, biblioteki jakie dołączasz czyli te include i na jaką płytkę chcesz to wgrywać.

0

Płyta to Mega2560.
Jest związane z nowym typem biblooteki #include <avr/pgmspace.h>
Pomogło wstawienie przed #define PROG_TYPES_COMPAT .
Dwa tygodnie szperałem w necie(z przerwami).
Proszę o objaśnienie co znaczy :: oraz &

0

Cześć,
Po pierwsze, nie wiem czym jest prog_char, bo nie pokazałeś swojego kodu, ale co do błędu kompilacji mogę powiedzieć tyle:

typedef <typ> prog_char
// i wtedy
const prog_char*

W google warto wrzucić od razu cały błąd i popatrzeć na przykłady ;)
Dokładnie tak samo jak z operatorami, których nie rozumiesz:
:: - odwołanie do metody, zmiennej, funkcji w danej klasie (w obiekcie!). Tutaj musisz po prostu zaznajomić się pokrótce z C++ i obiektówką
& - iloczyn bitowy. Czyli bitowe AND. Jeśli w zmiennej 8-bitowej masz ustawione bity: 01110010 i zrobisz iloczyn bitowy ze zmienną 00101110 to w wynikowej zmiennej ustawione będą tylko te bity, które w obu zmiennych były ustawione, czyli wartość będzie 00100010.

Po drugie... Kod, który pokazałeś to język C++, nie C.

Zacznij mocniej googlować wszystko czego nie wiesz, zaoszczędzisz sobie czasu i o wieele więcej się nauczysz. ;)
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1