<!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>