Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Storage-class-specificeraren i en funktionsdefinition ger funktionen antingen extern eller static lagringsklassen.
Syntax
              function-definition:
 
              declaration-specifiers
              väljaattribute-seqväljadeclaratordeclaration-listväljacompound-statement
              /* 
              attribute-seq är Microsoft-specifik */
              declaration-specifiers:
 
              storage-class-specifier
              declaration-specifiers
              välja
 
              type-specifier
              declaration-specifiers
              välja
 
              type-qualifier
              declaration-specifiers
              välja
              storage-class-specifier: /* För funktionsdefinitioner */
 extern
 static
Om en funktionsdefinition inte innehåller en storage-class-specifier, standardvärdet för lagringsklassen är extern. Du kan uttryckligen deklarera en funktion som extern, men det krävs inte.
Om deklarationen för en funktion innehåller storage-class-specifierexternhar identifieraren samma länkning som en synlig deklaration av identifieraren med filomfånget. Om det inte finns någon synlig deklaration med filomfånget har identifieraren extern länkning. Om en identifierare har filomfång och nej storage-class-specifierhar identifieraren extern länkning. Extern länkning innebär att varje instans av identifieraren anger samma objekt eller funktion. Mer information om länkning och filomfång finns i Livslängd, Omfång, Synlighet och Länkning.
Funktionsdeklarationer för blockomfattning med en annan lagringsklassspecificerare än extern att generera fel.
En funktion med static lagringsklass visas endast i källfilen där den har definierats. Alla andra funktioner, oavsett om de uttryckligen eller implicit ges extern lagringsklass, visas i alla källfiler i programmet. Om static lagringsklassen önskas måste den deklareras den första förekomsten av en deklaration (om någon) av funktionen och på definitionen av funktionen.
Microsoft-specifik
När Microsoft-tilläggen är aktiverade får static en funktion som ursprungligen deklarerades utan lagringsklass (eller med extern lagringsklass) lagringsklass om funktionsdefinitionen finns i samma källfil och om definitionen uttryckligen anger lagringsklassstatic.
När de kompileras med kompileringsalternativet /Ze har funktioner som deklarerats inom ett block med nyckelordet extern global synlighet, vilket inte är sant när de kompileras med /Za. Du bör inte förlita dig på den här funktionen om portabilitet för källkod är ett övervägande.
Avsluta Microsoft Specifik