Hopp til innhold

Funksjon (programmering)

Fra Wikipedia, den frie encyklopedi
Sideversjon per 23. apr. 2009 kl. 21:22 av 129.241.30.148 (diskusjon) (Ny side: En '''funksjon''', '''subrutine''' eller '''metode''' er en del av et program som returnerer tilbake til den delen av programmet som kalte funksjonen, ''kalleren''. En funksjon har et priva…)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)

En funksjon, subrutine eller metode er en del av et program som returnerer tilbake til den delen av programmet som kalte funksjonen, kalleren. En funksjon har et privat sett av data å jobbe med, deriblant eventuelle returdata og eventuelle parametere som kalleren sendte med, det vil si initialiserte.

Hensikt

  • Heve abstraksjonsnivået ved programmering.
  • Gjenbruke deler av programmet, både kildekode og maskinkode.

Terminologi

  • Innen objekorientert programmering brukes ordet "metode" om medlemsfunksjoner av klasser. Uformelt også synonymt med "funksjon".
  • C- eller Pascal- calling convention: Om det er henholdsvis kalleren eller funksjonen som justerer stakkpekeren. Førstnevnte muliggjør variabel mengde parameterdata.

Virkemåte

Funksjonskall er mer kompliserte enn hopp:

  • For at funksjonenes minne skal eksistere samtidig, må de plasseres på en stakk, altså en "sist inn, først ut"-kø. Stakkpekeren peker på toppen av stakken. Enten må hver funksjon ha sin egen stakkpeker, eller så må stakkpekeren justeres også ved retur.
  • Hver funksjon må ha kallerens kopi av programtelleren. Funksjonen returnerer ved å kopiere denne tilbake i programtelleren, slik at neste instruksjon som hentes av styreenheten i CPU-en er den som ligger rett etter funksjonskallet. Dermed fortsetter kalleren der den slapp.