static typ danych nazwa zmiennej
Statyczne zmienne lokalne
Gdy zmienna w funkcji jest statyczna, zmienna zachowuje swoją wartość między wywołaniami funkcji.
//Przykład 1.C
W przykładzie 1.C, mamy dwie funkcje: fun1 () I fun2 (). W fun1 (), Deklarujemy jedną zmienną (liczbę) i zainicjujemy ją do 0. Następnie zwiększamy zmienną liczby i zwracamy wynikową wartość. Za pomocą główny(), nazywamy fun1 () dwa razy i za każdym razem zwracana wartość 1, ponieważ zmienna zliczania jest wyczyszczona, gdy wezwanie fun1 () jest zakończony. W fun2 () Zadeklarowaliśmy zmienną liczby jako zmienną statyczną. Dlatego jego wartość jest zachowana. Za pomocą główny(), nazywamy fun2 () Dwa razy: po raz pierwszy wartość 1 jest zwracana, a po raz drugi zwraca wartość 2.
Statyczne zmienne globalne
Statyczna zmienna globalna zachowuje się w taki sam sposób jak inne zmienne globalne, ale nie można jej uzyskać z innego programu C.
Funkcje statyczne
W C funkcje są domyślnie globalne. Jeśli jednak ogłosimy funkcję statyczną, funkcja jest lokalna i nie można uzyskać do niej dostępu z innego programu C.
Inicjalizacja zmiennych statycznych
Jeśli zmienna statyczna nie jest wyraźnie zainicjowana, jest inicjowana jako 0.
// Przykład2.C
W przykładzie2.C, zadeklarowaliśmy zmienną statyczną I, która nie jest inicjowana. Ponieważ jednak zmienna jest statyczna, jest automatycznie inicjowana do 0.
Należy zauważyć, że zmienna statyczna musi być zainicjowana przez stały literał; Nie możemy użyć wartości zwracanej funkcji, aby zainicjować zmienną statyczną.
// Przykład3.C
W przykładzie3.c, staramy się zainicjować zmienną statyczną za pomocą wartości zwracanej fun1 (). Jednak, jak widać, błąd jest zwracany po skompilowaniu kodu.
Streszczenie
Żywotność zmiennej statycznej i żywotność programu są równe.
Jeśli zmienna statyczna nie zostanie zainicjowana, przyjmie wartość domyślną 0.
Ani globalna zmienna statyczna, ani funkcja statyczna nie jest dostępna z programu innego niż ten, w którym została zdefiniowana.