Statické specifikátory třídy úložiště
Specifikátory statické třídy úložiště static a extern lze použít pro objekty a funkce.Následující tabulka uvádí, kde klíčová slova static a extern lze či nelze použít.
Použití klíčových slov static a extern
Konstrukce |
Lze použít slovo static? |
Lze použít slovo extern? |
---|---|---|
Deklarace funkce v rámci bloku |
Ne |
Ano |
Formální argumenty funkce |
Ne |
Ne |
Objekty v bloku |
Ano |
Ano |
Objekty vně blok |
Ano |
Ano |
Funkce |
Ano |
Ano |
Členské funkce třídy |
Ano |
Ne |
Členská data třídy |
Ano |
Ne |
Názvy typedef |
Ne |
Ne |
Název zadaný pomocí klíčového slova static má vnitřní propojení vyjma statických členů tříd majících propojení vnější.To znamená, že není viditelný vně aktuální jednotky překladu.Název zadaný pomocí klíčového slova extern má vnější propojení, pokud nebyl dříve definován s vnitřním propojením.Další informace o viditelnosti názvů naleznete v tématech Obor a Program a propojení.
[!POZNÁMKA]
Funkce deklarované s klíčovým slovem inline, které nejsou členskými funkcemi tříd, mají stejnou charakteristiku propojení jako funkce deklarované s klíčovým slovem static.
Název třídy, na jejíž deklaraci kompilátor ještě nepřešel, lze použít v deklaraci extern.Název zavedený takovou deklarací nelze použít, dokud kompilátor nepřejde na deklaraci dané třídy.