static FFQODNTHUKICNJNH6H2BNQKHDJXGJ5WWMOEMHNQ






Jezyk C - zmienne extern i static





Robert Chwastek - Język C








Moja strona główna




Spis treści




Poprzednia strona






Zmienne i funkcje klasy extern i static

Klasy pamięci auto i register mogą być użyte tylko do
zmiennych lokalnych. Klasa static dotyczy również obiektów (zmiennych i
funkcji) deklarowanych poza jakimkolwiek blokiem.

Obiekt zadeklarowany poza jakimkolwiek blokiem jest obiektem
globalnym. Jest on widoczny od miejsca zadeklarowania do końca pliku. Może
być również widoczny w innych plikach, jeśli istnieją odpowiednie predefinicje
lub prototypy (dla funkcji). Jeśli mamy do czynienia ze zmienną, to będzie
ona widoczna w innym pliku, gdy poinformujemy kompilator, że taka zmienna
jest zadeklarowana w innym miejscu. Służy do tego deklaracja zmiennej klasy
extern. Taka deklaracja nie rezerwuje pamięci na zmienną - informuje tylko,
że zmienna będzie zdefiniowana w dalszej części tekstu programu lub w innym
pliku. Taka zmienna może być określona mianem zewnętrznej (external).


Przykład:

extern int cc;

...

int cc;


Jeśli zmienna zadeklarowana jako extern nie będzie miała
odpowiedniej deklaracji, bez modyfikatora extern, to program zostanie skompilowany
poprawnie, nie zostanie jednak połączony przez linker - wystąpią bowiem
obiekty, które nie zostaną znalezione. Podobnie, jeśli wystąpi predefinicja
funkcji, a nigdzie w programie nie będzie kompletnej definicji tej funkcji,
to program łączący zgłosi błędy. Rzeczywista deklaracja zmiennej może wystąpić,
w dowolnym miejscu po deklaracji extern lub bez niej. Najczęściej deklaracje
extern wpisuje się w plikach nagłówkowych wraz z predefinicjami funkcji,
natomiast samą zmienną deklaruje się w jednym z plików programowych.


Klasa static dla obiektów globalnych jest przeciwieństwem
klasy extern - informuje bowiem kompilator, że dana zmienna lub funkcja
ma być widoczna tylko w pliku programowym, w którym została zdefiniowana
lub zadeklarowana. Funkcji i zmiennych globalnych klasy static używa się
podczas tworzenia bibliotek. Pozwalają one bowiem na to, by użytkownik
tej biblioteki widział tylko te funkcje i zmienne, które są mu potrzebne.
Do innych funkcji lub zmiennych związanych z realizacją zadań wykonywanych
przez bibliotekę nie ma dostępu (nie może wtedy spowodować szkód związanych
z niewłaściwym użyciem funkcji lub przypisaniem błędnej wartości pewnej
zmiennej globalnej).











Moja strona główna




Spis treści




Następna strona

Wszelkie komentarze lub poprawki prześlij proszę na adres:
Robert.Chwastek@kt.agh.edu.pl
© Robert Chwastek, luty 1997






Wyszukiwarka

Podobne podstrony:
Static
staticbase
Static Analysis of Binary Code to Isolate Malicious Behaviors
index static image
ECU VAG EDC15 STATIC
WS5 Linear Static Truss
static x push it
static
mod mmap static
2009 08?hesion Bonding Linking Static Applications with Statifier and Ermine
USING A PITOT STATIC TUBE FOR VELOCITY AND FLOW RATE MEASURE
flow static desc ynwslahtp3zkhicxyozjfpal7aa26rge3dmlntq
eFunda Theory of Pitot Static Tubes
static
Madonna X Static Process
Static
Answer LAB4 1 Static Default Route

więcej podobnych podstron