Tach!
Da wird die Adresse der Variable im Datensegment auf dem Stack übergeben
Warum sollte das so stattfinden? Der Compiler muss doch dabei nicht den Umweg über den Stack gehen, sondern kann die Adresse direkt angeben, wie bei anderen globalen Variablen auch.
Wo werden denn die variablen Teile von Funktionen instanziiert?
Auf dem Stack, weil sie am Ende aufgeräumt werden.
Der Code selber wird aus dem Static-Objekt/der Funktionsdefinition eines Codesegmentes geholt, muss also nicht kopiert werden. Aber alle Values werden auf dem Stack geführt und die Referenzen auf dynamische Speicherbereiche, statische Variablen und globale Variablen auch.
Warum? Das wäre nur eine unnötige Indirektion bei Werten, die nicht im Stack liegen.
Ich wüsste nicht, wo ein Compiler bzw. der "Executor" das sonst lassen sollte.
Wenn wir von der klassischen Architektur ausgehen - Programm, Datensegment, Heap, Stack - dann im Datensegment.
dedlfix.