Megosztás a következőn keresztül:


Tárolási osztály

A függvénydefiníció tárosztály-megadója a függvényt extern vagy static a tárolási osztályt adja meg.

Szemantika

function-definition:
declaration-specifiers választattribute-seqválasztdeclaratordeclaration-listválasztcompound-statement

/* attribute-seq Microsoft-specifikus */

declaration-specifiers:
storage-class-specifier declaration-specifiers választ
type-specifier declaration-specifiers választ
type-qualifier declaration-specifiers választ

storage-class-specifier: /* Függvénydefiníciókhoz */
extern
static

Ha egy függvénydefiníció nem tartalmaz ilyent storage-class-specifier, a tárolási osztály alapértelmezés szerint a következő lesz extern. A függvényeket explicit módon deklarálhatja, externde nem kötelező.

Ha egy függvény deklarációja tartalmazza a függvényt storage-class-specifierextern, az azonosító kapcsolata megegyezik az azonosító látható deklarációjával a fájlhatókörrel. Ha nincs látható deklaráció fájlhatókörrel, az azonosító külső kapcsolattal rendelkezik. Ha egy azonosító fájlhatókörrel rendelkezik, és nem storage-class-specifier, az azonosító külső kapcsolatokkal rendelkezik. A külső összekapcsolás azt jelenti, hogy az azonosító minden példánya ugyanazt az objektumot vagy függvényt jelöli. A csatolással és a fájlhatókörrel kapcsolatos további információkért lásd: Élettartam, Hatókör, Láthatóság és Hivatkozás.

A blokkhatókör-függvény deklarációi a hibák generálásán kívül extern más tárolóosztály-megadóval.

A tárolási osztályt tartalmazó static függvények csak abban a forrásfájlban láthatók, amelyben definiálva van. Minden más függvény, függetlenül attól, hogy explicit vagy implicit tárolási osztályt kapnak extern , a program összes forrásfájljában látható. Ha static tárolási osztályra van szükség, azt a függvény deklarációjának első előfordulásakor (ha van ilyen) és a függvény definícióján kell deklarálni.

Microsoft-specifikus

Ha a Microsoft-bővítmények engedélyezve vannak, egy eredetileg tárolási osztály (vagy extern tárolási osztály) nélkül deklarált függvény tárolási osztályt kap static , ha a függvénydefiníció ugyanabban a forrásfájlban található, és ha a definíció kifejezetten a tárolási osztályt static határozza meg.

A /Ze fordítóval történő fordításkor a kulcsszót használó extern blokkon belül deklarált függvények globális láthatósággal rendelkeznek, ami nem igaz a /Za használatával való összeállításkor. Ez a funkció nem használható, ha a forráskód hordozhatósága megfontolandó.

END Microsoft-specifikus kifejezés

Lásd még

C függvénydefiníciók