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:
StaticstaticbaseStatic Analysis of Binary Code to Isolate Malicious Behaviorsindex static imageECU VAG EDC15 STATICstaticWS5 Linear Static Trussstatic x push itstaticmod mmap static2009 08?hesion Bonding Linking Static Applications with Statifier and ErmineUSING A PITOT STATIC TUBE FOR VELOCITY AND FLOW RATE MEASUREflow static desc ynwslahtp3zkhicxyozjfpal7aa26rge3dmlntqeFunda Theory of Pitot Static TubesMadonna X Static ProcessStaticAnswer LAB4 1 Static Default Routewięcej podobnych podstron