Cześć.
Szukam odpowiedzi na może dość banalne pytanie, ale nie spotkałem odpowiedzi na to mimo że jest to dość oczywiste, tylko dlaczego.
Otóż, piszę sobie program na jakiegoś AVR w WinAVR.
Powiedzmy że program używa jakiś funkcji obsługujących np szynę 1-Wire.
Więc zgodnie z dobrymi zasadami wszystkie funkcje związane z obsługą szyny 1-Wire oddzielamy od głównego programu do osobnego pliku.
Zwykle mamy wtedy pliki main.c oraz 1wire.c i 1wire.h
Ale moje pytanie brzmi tak. Dlaczego te funkcje znajdują się w pliku 1wire.c?
Czy nie możemy po prostu skopiować wszystkich funkcji do pliku 1wire.h i dodać do programu głównego poprzez #include?
Przecież jak mamy dwa osobne pliki źródłowe z końcówką c to w pliku Makefile musimy dodać do kompilacji te pliki źródłowe. A jak korzystamy z bibliotek z pakietu WinAVR np do obsługi Watchdoga to nie dodajemy tego do makefile tylko poprzez #include?
Gdzie tu jest haczyk?
Szukam odpowiedzi na może dość banalne pytanie, ale nie spotkałem odpowiedzi na to mimo że jest to dość oczywiste, tylko dlaczego.
Otóż, piszę sobie program na jakiegoś AVR w WinAVR.
Powiedzmy że program używa jakiś funkcji obsługujących np szynę 1-Wire.
Więc zgodnie z dobrymi zasadami wszystkie funkcje związane z obsługą szyny 1-Wire oddzielamy od głównego programu do osobnego pliku.
Zwykle mamy wtedy pliki main.c oraz 1wire.c i 1wire.h
Ale moje pytanie brzmi tak. Dlaczego te funkcje znajdują się w pliku 1wire.c?
Czy nie możemy po prostu skopiować wszystkich funkcji do pliku 1wire.h i dodać do programu głównego poprzez #include?
Przecież jak mamy dwa osobne pliki źródłowe z końcówką c to w pliku Makefile musimy dodać do kompilacji te pliki źródłowe. A jak korzystamy z bibliotek z pakietu WinAVR np do obsługi Watchdoga to nie dodajemy tego do makefile tylko poprzez #include?
Gdzie tu jest haczyk?
