Sdílet prostřednictvím


Třídy úložiště jazyka C

„Paměťová třída“ proměnné určuje, zda má položka „globální“ nebo „místní“ životnost.Jazyk C nazývá tyto životnosti „statická“ a „automatická“. Položka s globální životností existuje a má hodnotu během provádění programu.Všechny funkce mají globální životnost.

Automatickým proměnným nebo proměnným s místní životností je paměť přidělena pokaždé, když provádění vstoupí do bloku, ve kterém jsou definovány.Když se provádění vrátí, nemají tyto proměnné již platné hodnoty.

Jazyk C poskytuje následující specifikátory paměťové třídy:

Syntax

  • specifikátor-paměťové-třídy:
    auto

    register

    static

    extern

    typedef

    __declspec ( rozšířená-sekvence-modifikátoru-decl ) /* Specifické pro společnost Microsoft */

S výjimkou specifikátoru __declspec lze použít pouze jeden specifikátor paměťové třídy v deklaraci specifikátor-deklarace.Pokud není zadán žádný specifikátor paměťové třídy, deklarace v rámci bloku vytvoří automatické objekty.

Položky deklarované pomocí specifikátorů auto nebo register mají místní životnost.Položky deklarované pomocí specifikátorů static nebo extern mají globální životnost.

Protože jsou specifikátory typedef a __declspec sémanticky odlišné od ostatních čtyř specifikátorů paměťové třídy, jsou popsány samostatně.Konkrétní informace o specifikátoru typedef naleznete v tématu Deklarace typedef.Konkrétní informace o specifikátoru __declspec naleznete v tématu Rozšířené atributy paměťové třídy.

Umístění deklarací proměnných a funkcí v rámci zdrojového souboru ovlivňuje také paměťovou třídu a viditelnost.Deklarace mimo definice funkce je označována, že se zobrazí na „vnější úrovni“. Deklarace v rámci definice funkce se zobrazí na „vnitřní úrovni“.

Přesný význam každého specifikátoru paměťové třídy závisí na dvou faktorech:

  • Zda se deklarace zobrazí na vnější nebo vnitřní úrovni

  • Zda je deklarovaná položka proměnná nebo funkce

Témata Specifikátory paměťových tříd pro deklarace vnější úrovně a Specifikátory paměťových tříd pro deklarace vnitřní úrovně popisují specifikátory paměťové třídy pro každý způsob deklarace a popisují výchozí chování, když je specifikátor paměťové třídy proměnné vynechán.Téma Specifikátory paměťové třídy s deklarací funkce popisuje specifikátory paměťové třídy použité s funkcemi.

Viz také

Koncepty

Deklarace a typy