Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De opslagklasseaanduiding in een functiedefinitie geeft de functie extern of static opslagklasse.
Syntaxis
function-definition:
declaration-specifiers
opterenattribute-seqopterendeclaratordeclaration-listopterencompound-statement
/*
attribute-seq is Microsoft-specifiek */
declaration-specifiers:
storage-class-specifier
declaration-specifiers
opteren
type-specifier
declaration-specifiers
opteren
type-qualifier
declaration-specifiers
opteren
storage-class-specifier: /* Voor functiedefinities */
extern
static
Als een functiedefinitie geen definitie bevat storage-class-specifier, wordt de standaardwaarde van de opslagklasse ingesteld op extern. U kunt een functie expliciet declareren als extern, maar dit is niet vereist.
Als de declaratie van een functie de storage-class-specifierexternid bevat, heeft de id dezelfde koppeling als een zichtbare declaratie van de id met bestandsbereik. Als er geen zichtbare declaratie met bestandsbereik is, heeft de id externe koppeling. Als een id een bestandsbereik heeft en nee storage-class-specifier, heeft de id externe koppeling. Externe koppeling betekent dat elk exemplaar van de id hetzelfde object of dezelfde functie aangeeft. Zie Levensduur, Bereik, Zichtbaarheid en Koppeling voor meer informatie over koppelings- en bestandsbereik.
Declaraties van functie voor blokbereiken met een andere opslagklasseaanduiding dan extern fouten genereren.
Een functie met static opslagklasse is alleen zichtbaar in het bronbestand waarin deze is gedefinieerd. Alle andere functies, ongeacht of ze expliciet of impliciet opslagklasse krijgen extern , zijn zichtbaar in alle bronbestanden in het programma. Als static opslagklasse gewenst is, moet deze worden gedeclareerd bij het eerste exemplaar van een declaratie (indien aanwezig) van de functie en op de definitie van de functie.
Microsoft-specifieke
Wanneer de Microsoft-extensies zijn ingeschakeld, krijgt static een functie die oorspronkelijk is gedeclareerd zonder opslagklasse (of met extern opslagklasse) als de functiedefinitie zich in hetzelfde bronbestand bevindt en als de definitie expliciet opslagklasse aangeeftstatic.
Wanneer functies worden gecompileerd met de optie /Ze compiler, hebben functies die zijn gedeclareerd in een blok met behulp van het extern trefwoord globale zichtbaarheid, wat niet waar is bij het compileren met /Za. Deze functie moet niet worden vertrouwd als de overdraagbaarheid van broncode een overweging is.
Microsoft-specifieke beëindigen