<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Arial">Takže pokud bych to chtěl formulovat
"assemblerovsky", tak zápis <br>
</font></p>
<p><font face="Arial">char buf[i]; // stejně jako char * buf =
alloca(i);<br>
</font></p>
<p><font face="Arial">ve skutečnosti vygeneruje instrukci zvýšení
stackpointeru o obsah i</font></p>
<p><font face="Arial">Je to tak?<br>
</font></p>
<pre class="moz-signature" cols="72">Martin Záruba</pre>
<div class="moz-cite-prefix">Dne 23.4.2024 v 12:12 Jan Waclawek
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:PC195202404231212330085cfc7f736@wekPC">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">V C++ se [alloca()] prostě nepouľívá, protoľe není potřeba. Není potřeba ani v C99,
můľete prostě napsat
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
Hm, variable-length array (VLA). Toto som dodnes ignoroval (najma kvoli
hroze z toho, co je o nich popisane v norme, t.j. vsetky netrivialne
pouzitia vratane [*]).
Ale v takomto trivialnom pripade (t.j. priama definicia s jednoduchou a
jasnou premennou ako velkost pola) to vyzera takmer uzitocne. Aj ked, na
druhej strane, to alloca() je podla mna ilustrativnejsie.
Vyskusal som, a avr-gcc prelozilo oboje uplne identicky (podla ocakavania -
ten alloca() je aj tak len makro pre __builtin_alloca(), takze to vedie na
nieco co sa udeje pocas prekladu, nie je to prilinkovana vec).
wek
_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
</body>
</html>