Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Specifikátor třídy úložiště v definici funkce poskytuje funkci buď extern nebo static třídu úložiště.
Syntaxe
function-definition:
declaration-specifiers
optattribute-seqdeclaratordeclaration-listcompound-statement
/*
attribute-seq je specifický pro Microsoft */
declaration-specifiers:
storage-class-specifier
declaration-specifiers
volit
type-specifier
declaration-specifiers
volit
type-qualifier
declaration-specifiers
volit
storage-class-specifier: /* Pro definice funkcí */
extern
static
Pokud definice funkce neobsahuje storage-class-specifier, třída úložiště ve výchozím nastavení extern. Funkci můžete explicitně deklarovat jako extern, ale nevyžaduje se.
Pokud deklarace funkce obsahuje storage-class-specifierextern, identifikátor má stejné propojení jako jakákoli viditelná deklarace identifikátoru s oborem souboru. Pokud neexistuje žádná viditelná deklarace s oborem souboru, má identifikátor externí propojení. Pokud má identifikátor obor souboru a ne storage-class-specifier, má identifikátor externí propojení. Vnější propojení znamená, že všechny instance identifikátoru označují stejný objekt nebo funkci. Další informace o propojení a rozsahu souborů najdete v tématu Životnost, Rozsah, Viditelnost a Propojení.
Deklarace funkcí v oboru bloku se specifikátorem třídy úložiště jiným než extern generují chyby.
Funkce s static třídou úložiště je viditelná pouze ve zdrojovém souboru, ve kterém je definovaná. Všechny ostatní funkce, ať už mají extern třídu úložiště explicitně nebo implicitně, jsou viditelné ve všech zdrojových souborech v programu. Pokud static je požadovaná třída úložiště, musí být deklarována při prvním výskytu deklarace (pokud existuje) funkce a v definici funkce.
Specifické pro Microsoft
Pokud jsou povolena rozšíření Společnosti Microsoft, funkce původně deklarovaná bez třídy úložiště (nebo třídy extern úložiště) má třídu static úložiště, pokud je definice funkce ve stejném zdrojovém souboru a pokud definice explicitně určuje static třídu úložiště.
Při kompilaci s možností kompilátoru /Ze mají funkce deklarované v bloku pomocí klíčového extern slova globální viditelnost, což není pravdivé při kompilaci pomocí /Za. Tato funkce by se neměla spoléhat, pokud je potřeba zvážit přenositelnost zdrojového kódu.
END Specifikace Microsoftu