Funktionsdefinition
-
Hallo,
z. B: In main() habe ich die Funktion function() aufgerufen und ihr die Werte von ivar1 und ivar 2 übergeben : function(ivar1, ivar2)
Stack :
startup code
----------------------
main()
434, 345 ( Parameter )
----------------------
function()
....
----------------------Hier meine Frage :
void function(int izahl1, int izahl2) { ... }
Bedeutet int izahl1 --> Gehe in den Speicherbereich vom Aufrufer , hole den ersten übergebenen Wert vom Typ int und mache es unter dem Namen izahl1 für function verfügbar ; int izahl2 --> ~~hole den zweiten übergebenen Wert und mache es unter dem Namen izahl2 für function verfügbar.
-
ich bin mir nicht sicher ob ich dich richtig verstanden habe.
möchtest du jetzt wissen wie parameter, abhängig von den aufrufkonventionen, an
die funktion übergeben werden?
-
autumn_search schrieb:
Bedeutet int izahl1 --> Gehe in den Speicherbereich vom Aufrufer , hole den ersten übergebenen Wert vom Typ int und mache es unter dem Namen izahl1 für function verfügbar...
so ähnlich. der wert wird beim aufruf mach 'izahl1' kopiert. 'izahl1' kann dann in 'function' wie jede normale int-variable benutzt werden, nur mit dem kleinen unterschied, dass sie beim aufruf mit dem übergabewert des aufrufers initialisiert wurde. wie das ganze auf maschinenebene abläuft, kann sehr unterschiedlich sein. oft werden einfache 'ints' in registern übergeben oder auf den prozessorstack gepusht.
-
Danke für die Antworten,
Mir ist nur nicht klar wie izahl1 definiert wird, wo es sich danach befindet .. Normalerweise werden Variablen im Funktionskörper definiert && deklariert
-
Du kannst dir Parameter wie lokale Variablen vorstellen, d.h. es hat den gleichen Gültigkeitsbereich.