Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A függvénydefiníció meghatározza a függvény nevét, a várható paraméterek típusát és számát, valamint a visszatérési típusát. A függvénydefiníciók egy függvénytörzset is tartalmaznak a helyi változók deklarációival, valamint azokat az utasításokat, amelyek meghatározzák a függvény működését.
Szemantika
translation-unit:
external-declaration
translation-unit
external-declaration
external-declaration: /* Csak külső (fájl) hatókörben engedélyezett */
function-definition
declaration
function-definition:
declaration-specifiers
választattribute-seqválasztdeclaratordeclaration-listválasztcompound-statement
/*
attribute-seq Microsoft-specifikus */
A prototípus paraméterei a következők:
declaration-specifiers:
storage-class-specifier
declaration-specifiers
választ
type-specifier
declaration-specifiers
választ
type-qualifier
declaration-specifiers
választ
declaration-list:
declaration
declaration-list
declaration
declarator:
pointer
választdirect-declarator
direct-declarator: /* Függvénydeklarátor */
direct-declarator
(
parameter-type-list
) /* Új stílusú deklarátor */
direct-declarator
(
identifier-list
választ) /* Elavult stílusú deklarátor */
A definíció paraméterlistája a következő szintaxist használja:
parameter-type-list: /* A paraméterlista */
parameter-list
parameter-list
, ...
parameter-list:
parameter-declaration
parameter-list
,
parameter-declaration
parameter-declaration:
declaration-specifiers
declarator
declaration-specifiers
abstract-declarator
választ
A régi stílusú függvénydefiníció paraméterlistája a következő szintaxist használja:
identifier-list: /* Elavult stílusú függvénydefiníciókban és deklarációkban használatos */
identifier
identifier-list
,
identifier
A függvény törzsének szintaxisa a következő:
compound-statement:
{
declaration-list
választstatement-listválaszt}
A függvénydeklarációk módosítására csak a storage-class kijelölők és a externstatic. A extern kijelölő azt jelzi, hogy a függvény más fájlokból is hivatkozható, vagyis a függvény neve exportálva lesz a hivatkozáskezelőbe. A static kijelölő azt jelzi, hogy a függvény nem hivatkozható más fájlokból, vagyis a nevet nem exportálja a hivatkozáskezelő. Ha egy függvénydefinícióban nem jelenik meg tárosztály, extern a függvény feltételezi. A függvény mindenesetre mindig látható a definíciós ponttól a fájl végéig.
A választható declaration-specifiers és kötelező declarator együtt adja meg a függvény visszatérési típusát és nevét. Az declarator azonosító a függvény nevét és a függvény nevét követő zárójelek kombinációját tartalmazza. Az opcionális attribute-seq nemterminális funkció a Függvényattribútumokban definiált Microsoft-specifikus funkció.
A direct-declarator (szintaxisban declarator ) a definiált függvény nevét és paramétereinek azonosítóit adja meg. Ha a direct-declarator lista tartalmazza a paramétert parameter-type-list, a lista az összes paraméter típusát határozza meg. Az ilyen deklarátor függvény-prototípusként is szolgál a függvény későbbi hívásaihoz.
A declaration függvénydefiníciókban a declaration-list függvénydefiníciók nem tartalmazhatnak storage-class-specifier másokat.register A type-specifier szintaxisban szereplő declaration-specifiers értéket csak akkor lehet kihagyni, ha a register tárolási osztály egy típushoz int van megadva.
Ez compound-statement az a függvénytörzs, amely helyi változódeklarációkat, külsőleg deklarált elemekre mutató hivatkozásokat és utasításokat tartalmaz.
A szakaszok függvényattribútumok, tárolási osztály, visszatérési típus, paraméterek és függvénytörzs részletesen ismertetik a függvénydefiníció összetevőit.