A c. Függvények érvei c

Funkcióelméletek

referencia argumentumok

Argumentumok és helyi változók tárolására általában speciális memóriaterületet használnak - a verem. Mivel az ezzel járó műveletek meglehetősen lassúak, a nagyobb adatok jobbak a linkek vagy mutatók áthaladására, és a helyi változók dinamikus memóriát használnak.

függvényként

Mivel a függvény neve maga a mutató. akkor definiálhatunk olyan függvényeket, amelyek argumentumként más függvényeket veszünk.

argumentumokat az attribútum const

Nem szabad megfeledkeznünk arról, hogy a hivatkozások vagy mutatók segítségével történő argumentumok átadásával lehetőséget adunk a függvényben lévő objektumok megváltoztatására. Bizonyos esetekben szükség van, másokban nem. Az argumentum megváltoztatásának megakadályozása érdekében a const attribútumot használjuk.

alapértelmezett értékeket

A C ++ lehetővé teszi, hogy a függvény argumentumokat az alapértelmezett értékekre állítsa be. Az ilyen érveknek a lista végén kell lenniük. Az érték bármilyen típusú kifejezés lehet, amely az inicializálásra érvényes.

funkciók túlterhelése

A funkciók ugyanazt a nevet adhatják, ha különböző számú érv vagy különböző típusú argumentum van. Ezt nevezik túlterhelési funkciónak. Néha a túlterhelés megosztása és az alapértelmezett argumentumértékek névkonfliktust eredményezhetnek.

A túlterhelést az új függvénynevek generálásával hozza létre, az argumentumok számától és típusától függően. Minden fordítónak saját algoritmusa van a nevek előállítására. Ezért a könyvtáraknak a hordozhatóságuk érdekében történő fejlesztésekor csak a C függvényeket használják. A C szabvány szerint csak az aláhúzás adódik hozzá a függvénynevekhez. Az alábbiak a MinGw fordító által generált funkciók nevei. Nézze meg az objektumfájlok nevét (* .obj vagy * .o)

változó számú érv

A C ++-ban változó számú argumentummal működik. Például a konzol output kimenetének könyvtári funkciója printf. Egy változó számú argumentum megadásához használja az ellipszist. Legalább egy megnevezett argumentumnak kell lennie, amely általában meghatározza a meg nem nevezett argumentumok számát.

Másodszor, a legtöbb fordító esetében az argumentumok átvitelének módja nem módosítható (pl. Ne használja a függvény attribútumokat, mint a __fastcall). A nem nevesített érvek eléréséhez használja a stdarg.h fájlban definiált makrókat.

Kapcsolódó cikkek