Re: WinAVR-20080610 problem z funkcjami inline

Sep 11, 2008 0 Replies



> plik z f-cjami inline kompiluje sie bezblednie jak widac:
>
> Compiling C: dev/ads1110.c
[ciach]


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

To tylko ostrzeżenie, że funkcja nie będzie potraktowana jako inline i rozwinięta w miejscu wywołania. Wyjaśnij, po co deklarujesz funkcje jako inline, jeżeli nie dajesz kompilatorowi możliwości skorzystania z tej deklaracji, definiując te funkcje w oddzielnym pliku ".c" ? Aby deklaracja inline mogła zadziałać, kompilator musi znać definicję funkcji w miejscu, gdzie napotka do niej odwołanie. Przy programach składających sie z wielu plików źródłowych, jedynym sensownym sposobem jest umieszczenie definicji funkcji inline w pliku nagłówkowym i najczęściej z dodatkowym atrybutem static (znaczy jako static inline), aby później uniknąć problemów w czasie łączenia.


Wcześniejsza wersja kompilatora najwidoczniej nie potrafiła generować ostrzeżeń tego rodzaju.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required