Stack (informatica): verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
k →Stacks bij de uitvoering van programma's: opmaak, spelling |
|||
Regel 23:
== Stacks bij de uitvoering van programma's ==
Een zogenaamde callstack wordt gebruikt bij het aanroepen van [[subroutine]]s in [[computerprogramma]]'s.
De ''program
De stackpointer wijst naar het bovenste van de stack.
De stack ziet er zo uit bij het uitvoeren van een basis programma met lokale variabelen en parameters bv '''void''' Programma(int temp);▼
▲De stack ziet er zo uit bij het uitvoeren van een
Eerst pusht de compiler de actuele parameters.▼
Daarna wordt de program counter erop gezet.▼
▲# Eerst pusht de compiler de actuele parameters.
De basepointer (frame pointer) wordt erop gezet. Deze basepointer wordt gebruikt zodat men weet waar het programma begint.▼
De stackpointer wordt gelijk gesteld aan de basepointer, ze wijzen dus naar hetzelfde.▼
▲# De basepointer (frame pointer) wordt erop gezet. Deze basepointer wordt gebruikt zodat men weet waar het programma begint.
Er wordt geheugen vrijgemaakt (stackruimte) voor de lokale variabelen.▼
▲# De stackpointer wordt
▲# Er wordt geheugen vrijgemaakt (stackruimte) voor de lokale variabelen.
Na het uitvoeren van de code zal
# De stackpointer wordt gelijkgesteld aan de basepointer waardoor alle lokale variabelen worden 'verwijderd'. (Ze zijn er nog, maar niets kan eraan.)
# De basepointer gaat terug gezet worden naar waar het ervoor op stond (
# De
[http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Call_stack_layout.svg/342px-Call_stack_layout.svg.png Foto van de stack]
|