plik


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
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
Madonna X Static Process
Static
Answer LAB4 1 Static Default Route

więcej podobnych podstron