Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Inline funkcije - pomoc

[es] :: C/C++ programiranje :: Inline funkcije - pomoc

[ Pregleda: 6762 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nibble

Član broj: 63173
Poruke: 302
*.dlp395.bih.net.ba.



+1 Profil

icon Inline funkcije - pomoc22.08.2005. u 11:51 - pre 227 meseci
Moze li mi ko objasniti kakve su to inline funkcije i koja je razlika izmedju inline i obicnih funkcija.Evo imam jedan primjer al nekontam ga jer se cini kao "obicna" funkcija.
Code:

   #include <iostream.h>

   inline int Double(int);

   int main()
   {
     int target;

    cout << "Enter a number to work with: ";
    cin >> target;
    cout << "\n";

    target = Double(target);
    cout << "Target: " << target << endl;

    target = Double(target);
    cout << "Target: " << target << endl;


    target = Double(target);
    cout << "Target: " << target << endl;
       return 0;
  }

  int Double(int target)
  {
    return 2*target;
 }
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Inline funkcije - pomoc24.08.2005. u 10:06 - pre 227 meseci
Kada se poziva nekakva funkcija, dogadja se *principijelno* nekoliko stvari:

1) trenutni sadrzaj registara se stavlja na stek
2) poziva se data funkcija (sa parametrima)
3) vraca se sa steka stanje registara pre poziva

E sad, ove faze 1 i 3 ipak oduzimaju neko procesorsko vreme. Kada neku
funkciju proglasis 'inline', ona BI TREBALO da se direktno ugradi u kod na
mesto u kome se nalazi poziv. Dakle, vise zapravo nije poziv nego obican
kod koji je ugradjen umesto funkcije. U tvom slucaju EXE bi bio veci sa
inline jer se na 3 mesta UGRADJUJE funkcija.

Ovakve, 'inline' funkcije je pozeljno imati kada jhe potreba veca brzina obrade
u petljama. Dakle, da bi se izbeglo stalno pozivanje funkcije, jednostavno se ona
direktno ugradi unutar petlje.

Koliko se secam, nekada 'inline' stavio ga ili ne, nece biti prihvaceno, a neke
funkcije su automatski inline ...
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.bar.novatv.hr.



+9 Profil

icon Re: Inline funkcije - pomoc24.08.2005. u 17:46 - pre 227 meseci
Inline funkcija će cijelo svoje tijelo kopirati na mjesto poziva.
Iz tog istog razloga NIJE POŽELJNO da takva funkcija sadrži deklaracije polja itd.
jer će se deklaracija tog polja dogoditi svaki put kada se funkcija pozove.

Prilikom rada sa klasama sve funkcije, članice neke klase, čija su tijela napisana
unutar same definicije klase su po defaultu inline funkcije. Kod ostalih se to naknadno navodi sa ključnom riječi inline.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.americas.bgsinternal.com.



+6 Profil

icon Re: Inline funkcije - pomoc24.08.2005. u 17:51 - pre 227 meseci
Pročitaj ovo: http://www.gotw.ca/gotw/033.htm
 
Odgovor na temu

[es] :: C/C++ programiranje :: Inline funkcije - pomoc

[ Pregleda: 6762 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.