Wie speichert ein Programm eine Variable?
-
andere Tobi schrieb:
Also wenn ich das richtig verstanden habe, wäre eine mögliche Anweisung der ausführbaren Datei:
"Reserviere Speicher 00000000 - 00000003 für i vom Typ int (--> 4 Byte Größe)"Ja, in etwa. Der Typ wird nicht mitgespeichert, nur ob es sich um eine lokale Variable handelt (temporär) oder Eine, die die ganze Programmlaufzeit über gültig ist.
Wenn das Programm Debug-Informationen enthält, werden vermutlich auch Typ und Variablenname mitgespeichert bzw. sie kommen in eine separate Datei, die der Debugger auswertet.
-
Danke für die guten Antworten. Jetzt hab ich das soweit verstanden, dass ich in Ruhe ( vor mir selbst ^^ ) weiter machen kann.
MfG Tobi
-
Die eigentliche Antwort zum Code wurde noch nicht genannt.
Da die Variable 'i' hier lokal ist, wird sie auf dem Stack gespeichert (also relativ) - und die Stackadresse wird dem Prozess beim Start vom Betriebssystem mitgegeben (normalerweise in einem Prozessorregister).
-
Th69 schrieb:
Die eigentliche Antwort zum Code wurde noch nicht genannt.
Da die Variable 'i' hier lokal ist, wird sie auf dem Stack gespeichert (also relativ) - und die Stackadresse wird dem Prozess beim Start vom Betriebssystem mitgegeben (normalerweise in einem Prozessorregister).Das Betriebssystem wird nach dem Programm gestartet?
Im übrigen muss deine Antwort nicht unbedingt korrekt sein (und doch ich habe das eigentlich doch bereits gesagt). Es kann durchaus Systeme geben, wo das anderst gelöst ist.. Alles, was man hier mit Garantie sagen kann ist, dass der Speicher nach der main wieder frei gegeben wird.
-
drakon schrieb:
Das Betriebssystem wird nach dem Programm gestartet?
Sehr witzig

Soll ich vllt. Klammern darum setzen?
(und die Stackadresse wird dem Prozess beim Start) vom Betriebssystem mitgegeben
-
Th69 schrieb:
drakon schrieb:
Das Betriebssystem wird nach dem Programm gestartet?
Sehr witzig

Soll ich vllt. Klammern darum setzen?
(und die Stackadresse wird dem Prozess beim Start) vom Betriebssystem mitgegebenTut mir leid, aber ich find das wirlich unglücklich formuliert.

-
drakon schrieb:
Tut mir leid, aber ich find das wirlich unglücklich formuliert.

Ohne deinen Einwand hätte ich das ehrlich gesagt gar nicht bemerkt...

-
Ist das wieder so eine Schweizerdeutsch-Geschichte? "beim Start vom Betriebssystem" ist IMHO an sich ziemlich schlechter Ausdruck, wenn damit "beim Start des Betriebssystems" gemeint sein sollte.
-
Bashar schrieb:
Ist das wieder so eine Schweizerdeutsch-Geschichte? "beim Start vom Betriebssystem" ist IMHO an sich ziemlich schlechter Ausdruck, wenn damit "beim Start des Betriebssystems" gemeint sein ist.
Hmm. Ja ich denke das ist der Grund. Im Schweizerdeutschen wird das wirklich so (mit dieser Bedeutung) benutzt.
@Nexus:
"d'stack adresse wird am prozess bim start vom betriebssystem mitgeh"
Würdest doch auch so verstehen, dass das Betriebssystem nach dem Programm gestartet wird, oder?
-
drakon schrieb:
@Nexus:
"d'stack adresse wird am prozess bim start vom betriebssystem mitgeh"
Würdest doch auch so verstehen, dass das Betriebssystem nach dem Programm gestartet wird, oder?Jo

Genauer gesagt nicht unbedingt "nach", sondern "während" (es heisst ja beim Start).Mir scheint aber, hier hätte ich auf Anhieb deutsch gelesen... :p
-
Ich habe es korrekt gelesen und erst beim Beitrag von drakon bemerkt, dass man es grundsätzlich auch anders verstehen könnte. Tja, vielleicht hatte ich den Vorteil, dass ich nie Schweizerdeutsch schreibe. Sobald ich lese oder schreibe, verwende ich die Schriftsprache und probiere umzustellen. Schliesslich hat man immer am meisten Fehler in den Aufsätzen gemacht, wenn man sich die Sätze in Schweizerdeutsch überlegt und dann übersetzt hat

(Und meine Schriftsprache ist immernoch fürchterlich, man stelle sich nur vor, wie das früher bei mir war. Da habe ich fast Mitleid mit meinen Deutschlehrer/Innen :D)
Grüssli