For faster navigation, this Iframe is preloading the Wikiwand page for
Funksjon (programmering).
Denne artikkelen mangler
kildehenvisninger, og opplysningene i den kan dermed være vanskelige å
verifisere. Kildeløst materiale kan bli
fjernet. Helt uten kilder.
(10. okt. 2015)En funksjon, subrutine eller metode er en del av et dataprogram hvor en sekvens av instruksjoner er gruppert. De kan være navngitte, eller anonyme (lambda-funksjoner). Funksjoner endrer data enten med retur-verdier, eller ved endring av pekere. Nye verdier deklarert inne i funksjonen er oftest bare synlig (privat) i funksjonens omfang.
Hensikt
- Heve abstraksjonsnivået ved programmering.
- Gjenbruke deler av programmet, både kildekode og maskinkode.
Terminologi
- Innen objektorientert 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. Mens hopp utføres med en enkelt jump- eller branch-prosessorinstruksjon, krever funksjonskall ekstra programvare:
- 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.
Autoritetsdata
{{bottomLinkPreText}}
{{bottomLinkText}}
This page is based on a Wikipedia article written by
contributors (read/edit).
Text is available under the
CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.
{{current.index+1}} of {{items.length}}
Thanks for reporting this video!
This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:
An extension you use may be preventing Wikiwand articles from loading properly.
If you're using HTTPS Everywhere or you're unable to access any article on Wikiwand, please consider switching to HTTPS (https://www.wikiwand.com).
An extension you use may be preventing Wikiwand articles from loading properly.
If you are using an Ad-Blocker, it might have mistakenly blocked our content.
You will need to temporarily disable your Ad-blocker to view this page.
✕
This article was just edited, click to reload
Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}
Follow Us
Don't forget to rate us
Oh no, there's been an error
Please help us solve this error by emailing us at
support@wikiwand.com
Let us know what you've done that caused this error, what browser you're using, and whether you have any special extensions/add-ons installed.
Thank you!