Forskel mellem versioner af "Subrutine"

11 bytes tilføjet ,  for 7 måneder siden
m
linkændr
m (Retter flertydige links til Makro (link ændret til Macro) med DisamAssist.)
m (linkændr)
 
 
== Private data og rekursion ==
Hvis subrutinen er implementeret på en sådan måde, at den har [[variabelVariabel (datalogi)|variable]], der er private for rutinen, og således at et nyt kald af rutinen ''fra rutinen selv'' medfører skabelsen af et nyt sæt private variable, kan man benytte [[rekursion|rekursiv programmering]]. Dette implementeres hyppigt ved at afsætte (''allokere'') lagerplads til disse variable i en ''activation record'' eller ''stack frame'' oven på stakken (oven på den returadresse der er blevet lagt på stakken forinden). Derfor vil ethvert nyt kald føre til allokeringen af en ny activation record oven på en ny returadresse, og sammenblanding af variable undgås.
 
Selv om et programmeringssprog ikke giver muligheder for private/lokale variable (de oprindelige versioner af [[BASIC]] gjorde ikke dette), så kan man godt skrive rekursive programmer. Men det lægger en stor byrde på programmøren at holde rede på, hvilke data er gemt hvor.
110.278

redigeringer