Witam serdecznie użytkowników forum.

Dopiero raczkuję z programowaniem uC i jestem w trakcie pisania biblioteki do obsługi wyświetlaczy LCD opartych na sterowniku HD44780.
Starając się maksymalnie oszczędzić pamięć procesora, chcę napisać własną procedurę mającą na celu zamianę liczby na łańcuch znaków, aby wykorzystać ją do wysyłania danych liczbowych na wyświetlacz.
Ponieważ nie wiem czy podawana liczba będzie 8, 16, czy 32 bitowa, zamiast tworzyć dużą zmienną, która niepotrzebnie odkładała by się na stosie, postanowiłem użyć wskaźników, a ponieważ nie znam typu parametru, chcę użyć typu void.
Moja deklaracja funkcji wygląda następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jednak, gdy potrzebuję sprawdzić, czy podany parametr jest mniejszy od 0, za nic nie mogę dojść jak to zrobić.
Przesyłając zmienną w sposób:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jedyny sposób, w którym poprawnie funkcja odczytywała liczbę było zapisanie operacji na wskaźniku w sposób:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Przy czym, jeżeli typ podanej liczby będzie np int8_t, takie rzutowanie jest bez sensu. Sposoby o których myślałem, a niestety nie działają to:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jak więc ugryźć ten problem ? Przypuszczam, że to kwestia braku zrozumienia prze mnie działania wskaźnika void, bo jak narazie nie widzę sensownego zastosowania tego typu.
Bardzo dziękuję za pomoc, pozdrawiam
