Okres istnienia
"Okres istnienia" jest okresem, podczas wykonywania programu, w którym istnieje zmienna lub funkcji.Czas trwania składowania identyfikator określa jego użytkowania.
Identyfikator zadeklarowana z Specyfikator klasy magazynowaniastatyczne ma czas trwania składowania statyczne. Identyfikatory z czasem trwania składowania statyczne (nazywane także "globalne") mają składowania i wartości zdefiniowanej na czas trwania programu.Magazyn jest zarezerwowany i identyfikator wartość przechowywana jest inicjowany tylko raz, przed uruchamiania programu.Identyfikator zadeklarowana z zewnętrznych lub wewnętrzne powiązania ma także czas trwania składowania statyczne (zobacz powiązania).
Identyfikator zadeklarowane bez statyczne Specyfikator klasy magazynowej ma czas trwania składowania automatycznego, jeśli zostaje zadeklarowane wewnątrz funkcji.Identyfikator z czasem trwania automatycznego przechowywania ("lokalne identyfikator") ma magazynu i zdefiniowana wartość tylko w obrębie bloku, gdy identyfikator zdefiniowany lub zgłoszone.Identyfikator automatycznego jest przydzielany nowy magazyn przy każdym program wprowadzi ten blok i traci swój magazyn (i jego wartości), gdy program zamyka bloku.Identyfikatory zadeklarowane w funkcji z powiązania nie mają także czas trwania składowania automatyczne.
Następujące reguły określają, czy identyfikator ma globalne (statyczne) lub istnienia lokalne (Automatyczna):
Wszystkie funkcje mają statyczny okres eksploatacji.Dlatego istnieją na cały czas podczas wykonywania programu.Identyfikatory zadeklarowane na poziomie zewnętrznych (oznacza to, poza wszystkie bloki w programie na tym samym poziomie definicji funkcji) zawsze istnienia globalne (statyczne).
Jeśli zmienna lokalna ma inicjatora, zmienna jest zainicjowana po każdym utworzeniu (o ile nie jest zadeklarowana jako statyczne).Parametry funkcji mają również okres istnienia lokalnych.Można określić okres istnienia globalny identyfikator wewnątrz bloku przez łącznie z statyczne Specyfikator klasy magazynowej, w swojej deklaracji.Zgłoszone po statyczne, zmienna zachowuje jej wartość z jednego wpisu bloku do następnego.
Chociaż istnieje identyfikator z okresem istnienia globalne, podczas wykonywania program źródłowy (na przykład jest zewnętrznie deklarowana zmienna lub zmienna lokalna zadeklarowana z statyczne słowa kluczowego), mogą nie być widoczne we wszystkich częściach programu.Zobacz zakres i widoczności informacje dotyczące widoczności i zobacz Klasy magazynowania dla dyskusji o Specyfikator klasy magazynowania symboli nieterminalnych.
Może zostać zaalokowany pamięci, w razie potrzeby (dynamicznego), jeśli utworzony poprzez korzystanie z bibliotek specjalne, takie jak malloc.Ponieważ alokacja pamięci dynamicznej używa bibliotek, nie uznaje się częścią języka.Zobacz malloc funkcjonować w Run-Time Library Reference.