Használata függvény prototípusokat, programozás C és C

ANSI C szabvány szélesíti a koncepció pre-függvény leírása. Ezt a leírást az úgynevezett kiterjesztett függvény prototípust.

Funkció prototípusok két célt szolgálnak: egyrészt ők milyen típusú visszatérési értéke a funkciót, a fordító tudja generálni a megfelelő kódot a visszaküldött adatok Másodszor, a típus azonosításához és az argumentumok számát használt funkciókat. A prototípus a következő:

functionName típusú (paraméter lista);

A prototípus általában elején helyezkedik el a programot, és meg kell jelennie, mielőtt bármilyen függvényhívás.

Ezen túlmenően, hogy tájékoztassa a fordító, hogy milyen típusú a függvény visszatérési értéke a függvény prototípus lehetővé teszi, hogy végezzen a minőség-ellenőrzés típusai, mint például a végrehajtott ellenőrzések nyelven, mint a Pascal. Prototípusok hogy a fordító, hogy megtalálják, és az információt az összes illegális típusátalakítások között az érveket használják függvényhívás, és bizonyos paramétereket. Továbbá, a fordító hagyjuk kommunikálni, hogy a funkció az úgynevezett a megfelelő számú argumentummal.

Ha lehetséges, automatikusan átkonvertálja a argumentumtípus a típusú származtatott paraméter. Azonban néhány típusátalakítások nem engedélyezettek. Ha ez a funkció egy prototípus, az összes illegális átalakítás és egy hibaüzenet lesz megtalálható. Példaként a következő programot okoz hibaüzenetet, miközben megpróbál hívja func () egy mutató, de nem a kívánt úszót. (Nem lehet átalakítani a mutató egy float típusú).

/ * Ez a program a függvény prototípusokat eléréséhez erős típusellenőrzés amikor hívja funk (). A program nem lehet összeállítani, mert között eltérés az érvek meghatározott függvény prototípus, és milyen típusú érveket, amelyek az függvényhívás. * /

#include
float func (int x, float y); / * Prototípus * /
int main (void)
int x, * y;
x = 10;
y = x;
func (x, y); / * Típusütközés * /
vissza 0;
>

float func (int x, float y)
printf ( "% f", y / (float) x);
visszatérő y / (float) x;
>

A prototípus is lehetővé teszi, hogy a fordító üzenetet ad, ha az argumentumok száma használt a hívás funkció nem felel meg a számát megadott paraméterek függvényében. Például a következő program nem fordul le, mert funk () függvény a megfelelő számú argumentummal:

/ * A program nem fordul le miatt eltérés a paraméterek száma határozza meg a függvény prototípus, és a számos érvet használt függvényhívás. * /

#include
float func (int x, float y); / * Prototípus * /
int main (void)
func (2, 2,0, 4); / * Az argumentumok száma * /
vissza 0;
>

Egy műszaki szempontból, ha létrehoz egy függvény prototípus nem kell, hogy tartalmazza a valódi nevét a paramétereket. Például a következő két lehetőség teljesen érvényes és egyenértékű:

char func (char *, int);

char funk (char * str, int count);

Azonban, ha tartalmazzák a paraméter neveket, a fordító ugyanazokat a neveket a kérdés nem tartása típusú üzenetek.

Egyes funkciók, mint például a printf () tudja fogadni a változó számú érveket. A változó számú érvek határozzák meg a prototípus keresztül dot. Például a prototípust a printf () függvény így néz ki:

int printf (const char * FMT.);

kell fordulnunk a leírás a standard könyvtár va_arg () függvény létrehozásához funkciók változó számú érveket.

Meg kell használni a függvények prototípusai hibák megelőzésére eredményeként fellépő funkció felhívja a rossz érvek. Azt is segít, hogy ellenőrizze a helyességét a program anélkül, hogy a funkció az úgynevezett a megfelelő számú argumentummal. Mint korábban említettük, mert szükség van a C ++.

Kapcsolódó cikkek