Programowanie C

Statyczne w programowaniu C

Statyczne w programowaniu C
W tym samouczku wyjaśnimy słowo kluczowe static poprzez zastosowanie go w zmiennych i funkcjach. Static to słowo kluczowe używane w programowaniu w języku C, które można zastosować przy użyciu następującej składni:

statyczny 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.do
#zawierać
int zabawa1()

liczba int=0;
liczyć++;
liczba zwrotów;

int zabawa2()

statyczna liczba int=0;
liczyć++;
liczba zwrotów;

int main()

printf("fun1 pierwsze wywołanie zwraca : %d\n",fun1());
printf("fun1 drugie wywołanie zwraca : %d\n\n",fun1());
printf("fun2 pierwsze wywołanie zwraca : %d\n",fun2());
printf("drugie wywołanie fun2 zwraca : %d\n",fun2());
zwróć 0;


W przykładzie 1.c, mamy dwie funkcje: zabawa1() i zabawa2(). W zabawa1(), deklarujemy jedną zmienną (count) i inicjujemy ją na 0. Następnie zwiększamy zmienną count i zwracamy wynikową wartość. Za pomocą Główny(), nazywamy zabawa1() dwukrotnie i za każdym razem zwracana jest wartość 1, ponieważ zmienna count jest czyszczona, gdy wywołanie zabawa1() jest zakończony. W zabawa2() zadeklarowaliśmy zmienną count jako zmienną statyczną. Dlatego jego wartość jest zachowana. Za pomocą Główny(), nazywamy zabawa2() dwa razy: za pierwszym razem zwracana jest wartość 1, a za drugim razem zwracana jest wartość 2.

Statyczne zmienne globalne

Statyczna zmienna globalna zachowuje się tak samo jak inne zmienne globalne, ale nie można uzyskać do niej dostępu z innego programu w języku C.

Funkcje statyczne

W C funkcje są domyślnie globalne. Jeśli jednak zadeklarujemy funkcję statyczną, to funkcja jest lokalna i nie można do niej uzyskać dostępu z innego programu w C C.

Inicjalizacja zmiennych statycznych

Jeśli zmienna statyczna nie jest jawnie inicjowana, jest inicjowana jako 0.

//Przykład2.do
#zawierać
int main()

statyczna int i;
printf("Wartość i : %d\n",i);
zwróć 0;


W przykładzie 2.c, zadeklarowaliśmy zmienną statyczną i, która nie jest inicjowana. Ponieważ jednak zmienna jest statyczna, jest automatycznie inicjowana na 0.

Należy zauważyć, że zmienna statyczna musi być inicjowana stałym literałem; nie możemy użyć wartości zwracanej przez funkcję do zainicjowania zmiennej statycznej a.

//Przykład3.do
#zawierać
int zabawa1()

powrót 5;

int main()

statyczny int i = fun1();
printf("Wartość i : %d\n",i);
zwróć 0;


W przykładzie3.c, próbujemy zainicjować zmienną statyczną, używając wartości zwracanej przez zabawa1(). Jednak, jak widać, podczas kompilacji kodu zwracany jest błąd.

streszczenie

Czas życia zmiennej statycznej i czas życia programu są równe.

Jeśli zmienna statyczna nie jest inicjowana, przyjmie domyślną wartość 0.

Ani globalna zmienna statyczna, ani funkcja statyczna nie są dostępne z innego programu niż ten, w którym zostały zdefiniowane.

Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Gry Najlepsze gry wiersza poleceń dla systemu Linux
Najlepsze gry wiersza poleceń dla systemu Linux
Wiersz poleceń jest nie tylko twoim największym sprzymierzeńcem podczas korzystania z Linuksa - może być również źródłem rozrywki, ponieważ możesz go ...
Gry Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Najlepsze aplikacje do mapowania gamepada dla systemu Linux
Jeśli lubisz grać w gry na Linuksie za pomocą gamepada zamiast typowego systemu wprowadzania klawiatury i myszy, jest kilka przydatnych aplikacji dla ...