C/Biblioteki: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
→‎Ograniczanie dostępu do funkcji i zmiennych: trochę jaśniejsze, najpierw extern, potem static
Derbeth (dyskusja | edycje)
małe rozwinięcie
Linia 15:
#endif /* PLIK_H */
 
Zapewne zapytasz się na co komu instrukcje <tt>[[C/Preprocesor##ifdef #ifndef #else #endif|#ifndef]]</tt>, <tt>#define</tt> oraz <tt>#endif</tt>. Otóż często się zdarza, że w programie korzystamy z plików nagłówkowych, które dołączają się wzajemnie. Oznaczałoby to, że w kodzie programu kilka razy pojawiła by się zawartość tego samego pliku nagłówkowego. Instrukcja <tt>#ifndef</tt> i <tt>#define</tt> temu zapobiega. Dzięki temu kompilator nie musi kilkakrotnie kompilować tego samego kodu.
 
 
W plikach nagłówkowych często umieszcza się też definicje [[C/Typy złożone|typów]], z których korzysta biblioteka albo np. [[C/Preprocesor#Makra|makr]].
 
===Budowa najprostszej biblioteki===
Linia 35 ⟶ 38:
printf ("pl.Wikibooks\n");
}
 
Ważne jest dołączenie na początku pliku nagłówkowego. Dlaczego? Plik nagłówkowy zawiera deklaracje naszych funkcji - jeśli popełniliśmy błąd i deklaracja nie zgadza się z definicją, kompilator od razu nas o tym powiadomi. Oprócz tego plik nagłówkowy może zawierać definicje istotnych typów lub makr.
 
Zapiszmy naszą bibliotekę jako plik "wiki.c". Teraz należy skompilować naszą bibliotekę. Robi się to jednak trochę inaczej, niż normalny program. Należy po prostu do opcji kompilatora gcc dodać opcję "-c":