C Programování

Statické v programování C

Statické v programování C
V tomto tutoriálu vysvětlíme statické klíčové slovo jeho použitím v proměnných a funkcích. Static je klíčové slovo používané v programování v jazyce C a lze jej použít pomocí následující syntaxe:

statický datový typ název proměnné

Statické lokální proměnné

Když je proměnná ve funkci statická, proměnná zachová svou hodnotu mezi voláními funkcí.

// Příklad 1.C
#zahrnout
int fun1 ()

počet int = 0;
count ++;
počet návratů;

int fun2 ()

statický počet int = 0;
count ++;
počet návratů;

int main ()

printf ("fun1 1st call returns:% d \ n", fun1 ());
printf ("fun1 2. volání vrací:% d \ n \ n", fun1 ());
printf ("fun2 1st call returns:% d \ n", fun2 ());
printf ("fun2 2. volání vrací:% d \ n", fun2 ());
návrat 0;


V příkladu 1.c, máme dvě funkce: fun1 () a fun2 (). v fun1 (), deklarujeme jednu proměnnou (count) a inicializujeme ji na 0. Potom zvýšíme proměnnou count a vrátíme výslednou hodnotu. Použitím hlavní(), voláme fun1 () dvakrát a pokaždé, když je vrácena hodnota 1, protože proměnná count je při volání vymazána fun1 () je hotovo. v fun2 () proměnnou count jsme deklarovali jako statickou proměnnou. Jeho hodnota je proto zachována. Použitím hlavní(), voláme fun2 () dvakrát: poprvé se vrátí hodnota 1 a podruhé se vrátí hodnota 2.

Statické globální proměnné

Statická globální proměnná se chová stejným způsobem jako jiné globální proměnné, ale nelze ji získat z jiného programu C.

Statické funkce

V jazyce C jsou funkce ve výchozím nastavení globální. Pokud však deklarujeme statickou funkci, pak je funkce lokální a nelze k ní získat přístup z jiného programu C.

Inicializace statických proměnných

Pokud statická proměnná není explicitně inicializována, je inicializována jako 0.

// Příklad 2.C
#zahrnout
int main ()

statický int i;
printf ("Hodnota i:% d \ n", i);
návrat 0;


V příkladu 2.c, deklarovali jsme statickou proměnnou i, která není inicializována. Protože je ale proměnná statická, automaticky se inicializuje na 0.

Je důležité si uvědomit, že statická proměnná musí být inicializována konstantním literálem; nemůžeme použít návratovou hodnotu funkce k inicializaci statické proměnné.

// Příklad 3.C
#zahrnout
int fun1 ()

návrat 5;

int main ()

static int i = fun1 ();
printf ("Hodnota i:% d \ n", i);
návrat 0;


V příkladu 3.c, zkusíme inicializovat statickou proměnnou pomocí návratové hodnoty fun1 (). Jak však vidíte, při kompilaci kódu se vrátí chyba.

souhrn

Životnost statické proměnné a životnost programu jsou stejné.

Pokud statická proměnná není inicializována, bude mít výchozí hodnotu 0.

Globální statická proměnná ani statická funkce nejsou přístupné z jiného programu, než ve kterém byla definována.

Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...