Article View: de.comp.gnu
Article #33Re: was macht alloca?
From: Lars Soltau
Date: Thu, 03 Sep 1992 09:07
Date: Thu, 03 Sep 1992 09:07
38 lines
2504 bytes
2504 bytes
>>>>> On 2 Sep 92 18:25:55 GMT, hcz@reto.stgt.sub.org (Heike C Zimmerer) said:
> In article <1992Sep01.065949.23504@rubikon.han.de> toad@rubikon.han.de
> (Peter Cleve) writes:
>>Wenn du du Block durch Function austauscht liegst du richtig.
>>Nur absolut bescheuerte Compiler werden Variablen die lokal fuer einen
>>Block definiert sind beim Blockeintritt/austritt anlegen/loeschen.
> So bescheuert finde ich das nicht. Das Anlegen/Loeschen kostet nicht viel
> Assemblerinstruktionen (hier ists genau eine (1)).
Das ist auch nicht der Grund. Es wird nur kompliziert fuer den Compiler,
wenn mit break, continue oder goto aus dem Block oder in den Block gesprungen
wird. Dann muss der Compiler-Bauer dafuer sorgen, dass der Platz fuer die
lokalen Variablen auch brav immer angelegt und zerstoert wird.
> Neben dem Scope gibt es aber noch einen wichtigen Grund, Variable
> in einem lokalen Block zu definieren: Speicherplatz.
Das kann man aber auch anders loesen. Es ist naemlich viel einfacher,
festzustellen, welche Bloecke sich gegenseitig nie aufrufen. Damit koennen
dann die lokalen Variablen dieser Bloecke ueberlappend auf dem Stack
angeordnet werden.
Ich habe gerade den Gcc (1.39) darauf ueberprueft. Es werden tatsaechlich
lokale Variablen in sich gegenseitig ausschliessenden Bloecken nicht
ueberlappend angeordnet. Beim Winzelweich-C ist es so, dass Variablen gleichen
Typs ueberlappend angeordnet werden.
--
Lars Soltau bang: <insert ridiculously long path> BIX: -- no bucks --
smart: space@ncc1701.stgt.sub.org
Germany, Stuttgart-Zuffenhausen, where dreams come true: Heaven is 911!
I mean, do we call lack of belief in a Holy Banana abananism and
say that various evil is justified by abananism?
-- David Choweller on alt.atheism
Technical Details
Message-ID:
<SPACE.92Sep3110721@ncc1701.stgt.sub.org>Path:
arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!news.netmbx.de!Germany.EU.net!rz.uni-hildesheim.de!agsc!nadia!ncc1701.stgt.sub.org!ncc1701!spaceReferences:
<1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de> <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org> <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!news.netmbx.de!Germany.EU.net!rz.uni-hildesheim.de!agsc!nadia!ncc1701.stgt.sub.org!ncc1701!space From: space@ncc1701.stgt.sub.org (Lars Soltau) Newsgroups: de.comp.gnu Subject: Re: was macht alloca? Date: 03 Sep 92 09:07:21 GMT Organization: United Federation of Planets Lines: 38 Message-ID: <SPACE.92Sep3110721@ncc1701.stgt.sub.org> References: <1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de> <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org> <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org> NNTP-Posting-Host: ncc1701.stgt.sub.org In-reply-to: hcz@reto.stgt.sub.org's message of 2 Sep 92 18:25:55 GMT