Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Keď programátor definuje funkciu , ona robí tak definovať blok kódu na jednom mieste . Často , kód vo funkcii sa používa opakovane , alebo vykonáva komplexné úlohu, ktorý programátor môže chcete zmeniť , alebo v budúcnosti zmeniť . Programátor potom môže odkazovať na túto funkciu v celom programe pomocou jeho názvu . To umožňuje opätovné použitie kódu v rovnakom programe , alebo na rôznych programoch . . Táto Nasledujúci príklad ukazuje základné funkcie
int myFunc ( )
{
vrátiť 2 3 ;
}
Inline funkcie
Keď sa nazývajú funkcie vo všetkých programoch , ale špeciálny kód musí byť písomné kompilátor pre odkazovanie na funkciu . To je preto , že kód funkcie spočíva v pamäti v určitom mieste , oddelene od ostatných vykonávajúceho kódu . V podstate to znamená , že vykonávajúci kód musí presunúť na iné miesto v pamäti , spustiť kód funkcie , a potom sa vrátiť späť na pôvodný kód . Pre optimalizáciu rýchlosti , C zahŕňa " inline " kľúčové slovo , ktoré hovorí , že kompilátor skopírovať kód funkcie do vykonávajúceho kódu , ak je názov funkcie s názvom , ako sa kód funkcie z pamäte .
Inline statickej funkcie
funkcie " statické " hovorí kompilátora , že ďalšie programové súbory nemožno vidieť ani prístup k funkcii . Iba ďalšie funkcie z rovnakého súboru môžete vidieť statické funkcie . Preto , aby deklarovať funkciu lokálnej iba do súboru programátor definuje ju , a optimalizovaný pre rýchlosť existujúce ako vloženej funkcie , programátor by použiť " statické " a " inline " kľúčové slová definovať funkcie , ako v tomto príklade .
static inline void myFunc ( ) {
/* kód * /
Príklady
Použitie statických vložené funkcia umožňuje viac C súbory použiť rovnaké názvy funkcií v celej viac súborov . Napríklad , zvažovať tieto dva príklady funkcií . Prvá funkcia existuje v " one.h " a druhý v " two.h. " Vzhľadom k tomu , že funkcie sú statické , nebudú v rozpore , ak je funkcia volaná v jednom súbore alebo iný . Okrem toho , bude kompilátor umiestniť kód pre každú funkciu priamo do kódu spustením , skôr než odkazovanie na funkciu z pamäte .
//Z one.h
statické inline void MyFunc ( ) {
/* kód * /
}
//z two.h
static inline void MyFunc ( ) {
/* kód * /
}