Witajcie
Piszę w Eaglu program w języku C. Akurat na mikrokontrolery, ale to nie ma znaczenia. Tworzę sobie nową bibliotekę, załóżmy bilioteka1
i includuję nagłówek
biblioteka1.h
do main.c
. Dokładnie to samo robię z biblioteką biblioteka2
. Ponadto do blibliteka2.h
includuję biblioteka1.h
Teraz w biblioteka1.h
dodaję funkcja1
. A w biblioteka2.h
dodaję funkcja2
. W ciele funkcja2
wywołuję funkcja1
. Eclipse wywala mi ostrzeżenie
implicit declaration of function 'funkcja1' .
Oczywiście pomaga to jak w biblioteka2.c
dodam na początku extern void funkcja1 (void)
.
I stąd moje pytanie czy takie rozwiązanie jest poprawne i każdą funkcję którą wykorzystuję w bibliotece z innej biblioteki muszę zadeklarować jako extern
, czy powinienem do tematu inaczej podejść.
W nagłówkach .h obu bibliotek stosuję dyrektywy #ifndef, #define, #endif
.