W jaki sposób wywołać funkcję o nazwie zapisanej w stringu?
Dokładniej: obsługę dwurzędowych fontów realizuję poprzez funkcje, np: http://wklej.se/f0e7
naciskając odpowiednie przyciski tworzy mi się string z cyframi wewnątrz, np. "324521".
Żeby wypisać stringa, wystarczy że zrobię lcd.print(string);, ale wtedy stringa wypisuje mi na wyświetlacz korzystając z defaultowego, nieedytowalnego fontu. W jaki sposób porozdzielać tego stringa tak, żeby każda cyfra wywoływała inną funkcję do określonej cyfry?
@vifon_pikantny: Nie pamiętam jak to było ze wskaźnikami na funkcje, ale jeśli tak, jak myślę, to zapisz je w tablicy i wywołuj x-owy argument z tej tablicy. Tak bym to widział gdyby to wszystko działało tak jak mi się wydaje, że działało :< przynajmniej zawsze masz jakiś trop czego szukać :D
@vifon_pikantny: Nie jest to pewne, ale jeśli zrobisz tak jak napisał @Wiceps ale na
case ach to masz duże szanse, że kompilator to porządnie zoptymalizuje (tj. tak naprawdę nie będzie robił porównań tylko od razu skoki w odpowiednie miejsca).
@Wiceps: @almafater: zrobiłem na pętli for, na ifach działa a teraz wrzucę tam switch..case - dopóki nic się nie wywali, to takie rozwiązanie zostanie, dzięki wielkie!
@vifon_pikantny: W ramach wyjaśnienia o co mi chodziło, kompilator może zrobić coś takiego jak opisano w tym kursie:
Jest jednak jedna ciekawa sprawa: jeśli wartości poszczególnych przypadków case są zbliżone (coś w stylu 1, 2, 3 a nie 1, 20, 45), to możemy posłużyć się tablicą skoków (ang. jump table).
Siemcia, mam problem.
W jaki sposób wywołać funkcję o nazwie zapisanej w stringu?
Dokładniej: obsługę dwurzędowych fontów realizuję poprzez funkcje, np: http://wklej.se/f0e7
naciskając odpowiednie przyciski tworzy mi się string z cyframi wewnątrz, np. "324521".
Żeby wypisać stringa, wystarczy że zrobię lcd.print(string);, ale wtedy stringa wypisuje mi na wyświetlacz korzystając z defaultowego, nieedytowalnego fontu. W jaki sposób porozdzielać tego stringa tak, żeby każda cyfra wywoływała inną funkcję do określonej cyfry?
Zawołam @LukaszW i @Napiecie, może dadzą radę pomóc ;)
??
Poczytaj o wskaźnikach na funkcje
caseach to masz duże szanse, że kompilator to porządnie zoptymalizuje (tj. tak naprawdę nie będzie robił porównań tylko od razu skoki w odpowiednie miejsca).