Úvod do statického klíčového slova v C

Statické klíčové slovo v C se liší různě tak, že je to klíčové slovo, které lze použít s proměnnými i s funkcemi. Proto je velmi důležité získat demarkaci obou, abychom získali skutečné vlastnosti nebo chování klíčového slova konkrétně z hlediska jazyka C. Je trochu obtížné získat úplné porozumění tak důkladně pro začátečníky, takže projdeme syntaxi, skutečné fungování, jak to funguje v C, některé normy a pravidla, která je třeba dodržovat, protože může být trochu matoucí získat, kdy je použít pro rozsah proměnné a kdy použít pro rozsah funkčního bloku.

Syntax

1. Syntaxe statického klíčového slova v C při definování proměnné:

static
static
Examples of syntax for static variables:
static int run = 0;
int static sleep = 0;

2. Syntaxe statického klíčového slova v C při definování funkce:

static
static
Examples of syntax for static functions:
static void run ()
(
)
void static sleep ()
(
)

Jak funguje statické klíčové slovo v C?

V zásadě existují dva způsoby, jak statické klíčové slovo funguje v podmínkách C.

  • Statické klíčové slovo uvnitř funkce.
  • Statické klíčové slovo mimo funkci.

1. Statické klíčové slovo uvnitř funkce

Deklarace proměnné v rámci funkce je spojena s časem kompilace a dobou skladování proměnné v rámci volání funkce. Jednoduše řečeno, proměnné definované jako statické rozšiřují jejich rozsah pro více volání funkcí a jakmile jsou deklarovány, nemohou ztratit svůj rozsah až do konce provádění programu. Svůj rozsah začíná definovat v době kompilace.

Příklad

# include
int main ()
(
run ();
run ();
run ();
)
void run ()
(
static int running = 0;
++running;
printf ("The function \"run\" was called %d times.\n", running);
)

Výstup:

2. Statické klíčové slovo mimo funkci

Jakmile je statické klíčové slovo deklarováno mimo funkci, omezí to rozsah proměnné a stane se viditelným pouze pro aktuální soubor, což znamená, že funkce omezí svůj rozsah na samotný zdrojový soubor. Přístup k této statické proměnné nebo funkci získá omezení z jiného zdrojového souboru.

Přestože se považuje za dobré deklarovat funkci jako statickou, která pomáhá při zapouzdření dat do konkrétního rozsahu. Lidé z prostředí OOP nebo z javy ho mohou snadno spojit s fungováním soukromého a veřejného klíčového slova.

Příklad

Pro definování proměnných ve vnější funkci, tj. Na globální úrovni, musíme definovat alespoň statické klíčové slovo.

Definujte jednu statickou proměnnou v jednom zdrojovém souboru a stejnou proměnnou ve druhé proměnné v jiném zdrojovém souboru.

Source1.c
static int sleep = 0;
Source2.c
static int sleep= 0;
static void sleep ()
(
static int sleeping = 0;
++ sleeping;
printf (“the function \ “sleep\” was called %d times.\n”, sleeping);
)

Výstup:

Určení minimální velikosti parametru pole

Existuje jedno velmi důležité použití, které někdy ignorujeme, podívejme se na to.

Můžeme také sdělit kompilátoru parametr úložiště pro minimální deklaraci prvků v ukazateli pole funkci. Tento případ je však sledován velmi zřídka (až do kompilátoru C99).

Příklad

Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)
Void print Array (int myArray (static 10), int size)
(
int i;
printf (“(“);
for (i<0; i (
printf (“%d”, myArray(i));
)
printf (“) \n”);
)

V podstatě to bude informovat, že argument nebude nulový.

Pravidla a předpisy pro statické klíčové slovo v C

1. Z hlediska statické proměnné

  • Statická proměnná vždy zůstává naživu, když je program ve spuštěném stavu, na rozdíl od automatických a rezervovaných klíčových slov.
  • Úložiště a paměť se vyskytují v datovém segmentu, nikoli v segmentu zásobníku.
  • Pokud není proměnná ve výchozím nastavení deklarována žádnou hodnotou, bude ji kompilátor explicitně definovat jako 0.
  • Deklarace statických proměnných se většinou provádí pomocí konstantních literálů.
  • Předpokládá se především, že bychom neměli definovat statickou proměnnou uvnitř funkce, která většinou dělá celý funkční modul trochu složitější.

2. Z hlediska statické funkce

  • Deklarace proměnné je ve výchozím nastavení považována za globální, proto použití statického klíčového slova s ​​funkcí omezuje rozsah v rámci stejného zdrojového souboru.
  • Jednou z dobrých vlastností, jak tuto funkci učinit statickou, je opakovaná použitelnost, tj. Stejnou funkci můžeme volat vícekrát, kdykoli je to nutné pro provedení.

Výhody

  • Vzhledem k tomu, že proměnná je statická, je výhodná v tom smyslu, že pomáhá při optimalizaci celého toku kódu.
  • Opakovaná použitelnost a redefinice pomáhají kompilátoru volat interně libovolnou proměnnou, aniž by dominovaly jakékoli jiné klíčové slovo, jako je externí.
  • Jednou další výhodou je zvýšení čitelnosti tak, že budoucnost získá potvrzení, že soubor je deklarován jako statický a není přístupný jiným souborem nebo zdrojovým souborem.
  • Také to hodně zabrání deklaraci souboru c, tj. Redeclaringu jako jiné externí proměnné.

Závěr

  • Pojem „statický“ má svůj vlastní trend, ať už má být považován za smysluplný nebo bez smyslu. Různé programovací jazyky mají různé významy, které se vztahují pouze ke statickému klíčovému slovu. Objektově orientovaný jazyk se chová velmi dobře s vlastností zapouzdření.
  • Pokud jde o C, C # a C ++, má odlišnou povahu. Někteří považují použití statiky za nejlepší kvůli výhodám, které se může pochlubit, jako je optimalizace, opakovaná použitelnost, omezení rozsahu. Většina z nich je potvrzením konečného čitelného souboru.
  • Později, včetně některých naivních uživatelů, se může snadno dozvědět, zda dva zdrojové soubory neodpovídají součtem vnitřního obsahu statických funkcí a statické proměnné, jak to bude při kompilační chybě.
  • Pokud jde o C, nepovažuje se to za bezpečný a bezpečný způsob, protože interní komunikace mezi vlákny se stává nebezpečnou a obtížnou, protože se nakonec stává globální proměnnou. Proto někdy není považováno za tak konvenční způsob, jak využít statické klíčové slovo v C.

Doporučené články

Toto je průvodce po statickém klíčovém slově v C. Zde diskutujeme o tom, jak statické klíčové slovo funguje v C, s pravidly a předpisy. Další informace naleznete také v následujícím článku -

  1. Proměnné v C
  2. Výměna v C
  3. Matematické funkce v C
  4. Reverzní číslo v C
  5. Výměna v PHP
  6. Klíčová slova PHP
  7. Prvních 5 atributů události HTML s příklady

Kategorie: