Witam, przesiadlem sie na winavr z wersji z 2006 roku i zaczely sie schody w trakcie kompilacji :( wszystkie f-cje inline sie sypia. Tam gdzie wywoluje te funkcje linker wywala mi ze funkcja jest zdeklarowana, ale niezdefiniowana ... Wywale slowo inline i wszystko gra i huczy ... Ki czort?
plik w ktorym wywoluje funkcje inline w trakcie kompilacji wywala takie bledy:
include/dev/ads1110.h:6: warning: inline function 'ads1110_Convert_IN' declared but never defined include/dev/ads1110.h:5: warning: inline function 'ads1110_Convert' declared but never defined include/dev/ads1110.h:6: warning: inline function 'ads1110_Convert_IN' declared but never defined include/dev/ads1110.h:5: warning: inline function 'ads1110_Convert' declared but never defined
w czym moze byc problem? ktory powstal w nowej wersji ...
Jeżeli chcesz wymusić, aby funkcja zawsze była inline (normalnie może się zdarzyć, że jakaś duża funkcja static inline wywoływana wiele razy będzie umieszczona w kodzie tylko raz gdy optymalizujesz na zajętość pamięci kodu), można dodać always_inline to w atrybutach funkcji.
A mógłbyś jeszcze tak w 3 słowach wyjaśnić, co oznacza static dla funkcji inline?? Bo co dla zmiennej lokalnej - to wiem :)... ma stałe miejsce w RAMie... a dla funkcji - już nie :/...
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.