<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[warum ++i performanter als i++]]></title><description><![CDATA[<p>Hallo,</p>
<p>es heißt ja immer, ++i sei performanter.<br />
Warum in aller Welt sehe ich davon auf ASM Level nichts mehr davon?</p>
<pre><code>int x=0,y=0;

	y=x++;
	y=++x;
</code></pre>
<pre><code>y=x++;
0137187C 8B 45 F8         mov         eax,dword ptr [x] 
0137187F 89 45 EC         mov         dword ptr [y],eax 
01371882 8B 4D F8         mov         ecx,dword ptr [x] 
01371885 83 C1 01         add         ecx,1 
01371888 89 4D F8         mov         dword ptr [x],ecx 
	y=++x;
0137188B 8B 45 F8         mov         eax,dword ptr [x] 
0137188E 83 C0 01         add         eax,1 
01371891 89 45 F8         mov         dword ptr [x],eax 
01371894 8B 4D F8         mov         ecx,dword ptr [x] 
01371897 89 4D EC         mov         dword ptr [y],ecx
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/316142/warum-i-performanter-als-i</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 06:11:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316142.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Apr 2013 10:56:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 10:56:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es heißt ja immer, ++i sei performanter.<br />
Warum in aller Welt sehe ich davon auf ASM Level nichts mehr davon?</p>
<pre><code>int x=0,y=0;

	y=x++;
	y=++x;
</code></pre>
<pre><code>y=x++;
0137187C 8B 45 F8         mov         eax,dword ptr [x] 
0137187F 89 45 EC         mov         dword ptr [y],eax 
01371882 8B 4D F8         mov         ecx,dword ptr [x] 
01371885 83 C1 01         add         ecx,1 
01371888 89 4D F8         mov         dword ptr [x],ecx 
	y=++x;
0137188B 8B 45 F8         mov         eax,dword ptr [x] 
0137188E 83 C0 01         add         eax,1 
01371891 89 45 F8         mov         dword ptr [x],eax 
01371894 8B 4D F8         mov         ecx,dword ptr [x] 
01371897 89 4D EC         mov         dword ptr [y],ecx
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2317690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317690</guid><dc:creator><![CDATA[sadasdasd]]></dc:creator><pubDate>Tue, 23 Apr 2013 10:56:44 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:02:47 GMT]]></title><description><![CDATA[<p>sadasdasd schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>es heißt ja immer, ++i sei performanter.<br />
Warum in aller Welt sehe ich davon auf ASM Level nichts mehr davon?</p>
<pre><code>int x=0,y=0;

	y=x++;
	y=++x;
</code></pre>
<pre><code>y=x++;
0137187C 8B 45 F8         mov         eax,dword ptr [x] 
0137187F 89 45 EC         mov         dword ptr [y],eax 
01371882 8B 4D F8         mov         ecx,dword ptr [x] 
01371885 83 C1 01         add         ecx,1 
01371888 89 4D F8         mov         dword ptr [x],ecx 
	y=++x;
0137188B 8B 45 F8         mov         eax,dword ptr [x] 
0137188E 83 C0 01         add         eax,1 
01371891 89 45 F8         mov         dword ptr [x],eax 
01371894 8B 4D F8         mov         ecx,dword ptr [x] 
01371897 89 4D EC         mov         dword ptr [y],ecx
</code></pre>
</blockquote>
<p>Bei int war es schon immer gleich. Je nach Schwäche des Compilers und Pipelines im Prozessor sogar mit einer Zendenz zum i++.<br />
Dein Compiler sollte inzwischen so gut optimieren können, daß es iht vollkommen Wurst ist, ob Du ++i, i++, i+=1, i=i+1 oder gar i-=-1 schreibst.</p>
<p>Aber probier das mal mit Iteratoren, die nicht winzig sind oder mit BigIntergers mit tauzsenden von Stellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317695</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:02:47 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:05:09 GMT]]></title><description><![CDATA[<blockquote>
<p>Warum in aller Welt sehe ich davon auf ASM Level nichts mehr davon?</p>
</blockquote>
<p>Weil der Compiler nicht doof ist.</p>
<p>Relevant wird das, wenn als Datentyp mal nicht int vorliegt, sondern ein komplexes Klassenobjekt. Dann kann der Compiler keine Tricks durch das Jonglieren mit Registern benutzen.</p>
<p>edit: Zu langsam.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317696</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:06:55 GMT]]></title><description><![CDATA[<p>Es ist fast nie schneller. Das ist nur die Theorie.</p>
<p>In der Praxis optimiert der Compiler das (meistens) immer sehr gut, sodass es kein Stück langsamer mehr ist - wie in deinem Fall, oder auch bei <code>for(;;i++)</code> o.ä.</p>
<p>Edit: Das ist natürlich abhängig davon, was i ist, wie die anderen sagen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Edit²: So langsam? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317697</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:14:49 GMT]]></title><description><![CDATA[<p>sadasdasd schrieb:</p>
<blockquote>
<p>es heißt ja immer, ++i sei performanter [als i++].</p>
</blockquote>
<p>Heißt es das? nee ... aber es <em>könnte</em> performanter sein in Abhängigkeit dessen, was <code>i</code> ist.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">struct foo
{
  int bar;
  foo&amp; operator++()    {               ++bar; return *this;} // präfix  ++
  foo  operator++(int) {foo old=*this; ++bar; return old;}   // postfix ++
};
</code></pre>
<p>wie du siehst, wird beim postfix++ eine kopie erzeugt und die kopie zurückgegeben, während beim ++präfix nur eine Referenz auf das aktuelle Objekt zurückgegeben wird. Da passiert also unterschiedlilch viel.</p>
<p>Das <em>kann</em> dann schon einen Unterschied machen, zum Beispiel bei einem<a href="http://www.boost.org/doc/libs/1_40_0/libs/utility/shared_container_iterator.html" rel="nofollow"> <code>shared_container_iterator</code> </a>, wo im Falle eines postfix++ dann unnötig ein <code>shared_ptr</code> kopiert würde, wobei dann unnötig der Referenzzähler inkrementiert würde, nur, damit die temporäre Kopie des alten Iteratorzustands beim Semikolon wieder zerstört wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317698</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:04:39 GMT]]></title><description><![CDATA[<p>ok bei int ists also gleich.</p>
<p>werds mal mit großen typen probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317699</guid><dc:creator><![CDATA[dfgdfgd]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:04:39 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 11:22:19 GMT]]></title><description><![CDATA[<p>Es sollte ein Objekt sein, bei dem der Kopierkonstruktor nicht simpel ist.<br />
Dann merkst du einen großen Unterschied.</p>
<p>Bsp:</p>
<pre><code>class chars
{
private:
    std::string _s;
    char _c;

public:
    chars(char c)
        : _c(c)
    { }

    chars&amp; operator++()
    {
        _s.push_back(_c);
    }

    chars operator++(int)
    {
        chars copy = *this;
        ++(*this);
        return copy;
    }
};

int main()
{
    chars a('a');
    for(int i = 0; i &lt; 5000000; ++i)
        ++a;

    for(int i = 0; i &lt; 5000000; ++i)
        a++;
}
</code></pre>
<p>Ist aber ein reichlich blödes Beispiel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317705</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 23 Apr 2013 11:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 12:01:10 GMT]]></title><description><![CDATA[<blockquote>
<p>es heißt ja immer, ++i sei performanter.</p>
</blockquote>
<p>Quatsch. Schau dir doch mal bitte an: <a href="http://isocpp.org/blog/2012/12/three-optimization-tips-alexandrescu" rel="nofollow">http://isocpp.org/blog/2012/12/three-optimization-tips-alexandrescu</a></p>
<p>In Kombination mit Arrays kann Zugriff und Inkrement in der Pipeline parallel/out of order abgearbeitet werden:</p>
<pre><code class="language-cpp">array[i++] = 54
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2317718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317718</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 12:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 12:08:42 GMT]]></title><description><![CDATA[<p>sadasdasd schrieb:</p>
<blockquote>
<p>es heißt ja immer, ++i sei performanter.</p>
</blockquote>
<p>Ich bin kein Freund von &quot;Premature Optimization&quot;, aber auch ein Feind davon, Code potentiell langsamer zu machen, wenn es kein Aufwand bedeutet, potentiell schnelleren Code zu schreiben. Der Mensch ist zudem ein Gewohnheitstier, daher sollte man sich in dem Fall einfach das potentiell bessere angewöhnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317720</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 23 Apr 2013 12:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 12:52:43 GMT]]></title><description><![CDATA[<blockquote>
<p>das potentiell bessere angewöhnen</p>
</blockquote>
<p>Und das waere fuer <code>ints</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317733</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 12:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 12:59:27 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>es heißt ja immer, ++i sei performanter.</p>
</blockquote>
<p>Quatsch. Schau dir doch mal bitte an: <a href="http://isocpp.org/blog/2012/12/three-optimization-tips-alexandrescu" rel="nofollow">http://isocpp.org/blog/2012/12/three-optimization-tips-alexandrescu</a></p>
<p>In Kombination mit Arrays kann Zugriff und Inkrement in der Pipeline parallel/out of order abgearbeitet werden:</p>
<pre><code class="language-cpp">array[i++] = 54
</code></pre>
</blockquote>
<p>Da wird der Compiler doch selber drauf kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317735</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 23 Apr 2013 12:59:27 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 13:05:17 GMT]]></title><description><![CDATA[<p>Ich mag i++ nicht. Immer wenn ich es sehe, frage ich mir, wozu brauchst du hier den alten Wert? weißt du nicht was Post-Inc/Dec macht oder willst du mich nur in die Irre führen?... Außerdem find ich Post-Inc/Dec inkonsistent.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317738</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Tue, 23 Apr 2013 13:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 13:11:08 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Da wird der Compiler doch selber drauf kommen?</p>
</blockquote>
<p>Wie meinst du das? Auf was soll der Kompiler kommen?</p>
<blockquote>
<p>Ich mag i++ nicht.</p>
</blockquote>
<p>Ja, tolle Begruendung.</p>
<blockquote>
<p>Immer wenn ich es sehe, frage ich mir, wozu brauchst du hier den alten Wert?</p>
</blockquote>
<p>Nun, schon mal Standardimplementierungen von memcpy/strcpy gesehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317739</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 13:11:08 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 13:15:30 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>In Kombination mit Arrays kann Zugriff und Inkrement in der Pipeline parallel/out of order abgearbeitet werden:</p>
<pre><code class="language-cpp">array[i++] = 54
</code></pre>
</blockquote>
<p>Ist bei Präinkrement nicht anders, sofern der Prozessor über geeignete Adressierungsmodi verfügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317742</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 23 Apr 2013 13:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 13:18:32 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Da wird der Compiler doch selber drauf kommen?</p>
</blockquote>
<p>Wie meinst du das? Auf was soll der Kompiler kommen?</p>
</blockquote>
<p>Liege ich gerade falsch oder geht es darum dass der Array-Zugriff mit Postinkrement schneller ist?<br />
Falls das stimmt, wird der Compiler doch wohl schlau genug sein bzw die CPU hinreichend kennen und die performantere Methode wählen, wenn es keinen Einfluss auf das Programmverhalten hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317743</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 23 Apr 2013 13:18:32 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 14:07:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Ist bei Präinkrement nicht anders, sofern der Prozessor über geeignete Adressierungsmodi verfügt.</p>
</blockquote>
<p>Also bei</p>
<pre><code class="language-cpp">array[++i] = 45
</code></pre>
<p>Soll er i inkrementieren und parallel an die Adresse mit dem neuen i schreiben?</p>
<blockquote>
<p>wird der Compiler doch wohl schlau genug sein</p>
</blockquote>
<p>Was schneller ist, weiss ich nicht, da ich nicht gemessen habe. Aber prinzipiell sollte der Compiler schon den Quelltext beruecksichtigen, den ich hinschreibe.</p>
<p>PS: Das Video dient als Referenz. D.h. ich habe nichts selbst gemessen oder ausprobiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317757</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 14:07:40 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 14:08:14 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Ich sehe schon, dass niemand das Video sich angesehen hat. Anscheinend wars bei Facebook anders.</p>
</blockquote>
<p>Ich hab mir die verlinkten Slides des Vortrags angeschaut. Der Vortrag ist mir gerade zu lang. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317761</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 23 Apr 2013 14:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 14:10:00 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Ich hab mir die verlinkten Slides des Vortrags angeschaut. Der Vortrag ist mir gerade zu lang. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ja, das ist er.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317763</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 14:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 14:39:03 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>Ist bei Präinkrement nicht anders, sofern der Prozessor über geeignete Adressierungsmodi verfügt.</p>
</blockquote>
<p>Also bei</p>
<pre><code class="language-cpp">array[++i] = 45
</code></pre>
<p>Soll er i inkrementieren und parallel an die Adresse mit dem neuen i schreiben?</p>
</blockquote>
<p>Der Schreibzugriff hängt nur scheinbar von der Inkrementierung von i ab.</p>
<pre><code class="language-cpp">array[++i]
</code></pre>
<p>ist</p>
<pre><code class="language-cpp">*(array + ++i)
</code></pre>
<p>ist</p>
<pre><code class="language-cpp">*(array + (i+=1))
</code></pre>
<p>ist<br />
*(array + i<sub>old</sub> + 1) und i<sub>new</sub> = i<sub>old</sub> + 1<br />
ist<br />
*((array + 1) + i<sub>old</sub>) und i<sub>new</sub> = i<sub>old</sub> + 1<br />
sofern array statische Lebensdauer hat, kann die Erhöhung bereits beim Compilieren direkt berücksichtigt werden, ansonsten helfen Adressierungsmodi mit festem Displacement, über die praktisch jeder moderne Prozessor verfügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317773</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 23 Apr 2013 14:39:03 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 14:57:48 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Aber prinzipiell sollte der Compiler schon den Quelltext beruecksichtigen, den ich hinschreibe.</p>
</blockquote>
<p>Hmm, wenn ich</p>
<pre><code>if(x % 2 == 0)
</code></pre>
<p>schreibe, der Compiler aber weiß dass meine CPU ein AND schneller ausführt als ein MOD und daraus</p>
<pre><code>if(x &amp; 1 == 0)
</code></pre>
<p>macht, dann bin ich aber froh.</p>
<p>Ist imho das Gleiche wie bei den unterschiedlichen Inkrementierungsoperatoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317775</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 23 Apr 2013 14:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 15:10:52 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Ist imho das Gleiche wie bei den unterschiedlichen Inkrementierungsoperatoren.</p>
</blockquote>
<p>Nein, weil bei deinem Beispiel keine Seiteneffekte auftreten.</p>
<blockquote>
<p>kann die Erhöhung bereits beim Compilieren direkt berücksichtigt werden</p>
</blockquote>
<p>Nun, ich bin mir unsicher, ob der Compiler beispielsweise array einfach mit einem anderen Wert initialisiert. Und eine Zeile Code ist auch ein schlechtes Beispiel.</p>
<blockquote>
<p>Adressierungsmodi mit festem Displacement</p>
</blockquote>
<p>Meinst du, dass einfach eine Konstante in den Befehl mitkodiert wird? Kann mir gerade nicht so viel drunter vorstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317779</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 23 Apr 2013 15:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 16:10:00 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<blockquote>
<p>Adressierungsmodi mit festem Displacement</p>
</blockquote>
<p>Meinst du, dass einfach eine Konstante in den Befehl mitkodiert wird? Kann mir gerade nicht so viel drunter vorstellen.</p>
</blockquote>
<p>Genau das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317811</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 23 Apr 2013 16:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to warum ++i performanter als i++ on Tue, 23 Apr 2013 19:32:42 GMT]]></title><description><![CDATA[<p>Man kann sich raussuchen, was man da generell macht, wenn es nicht drauf ankommt; das sollte nur konsistent gemacht werden und nicht mal so, mal so. Ich hab mir preincrement für alle Standard-Fälle angewöhnt. Andere nehmen postincrement.</p>
<p>Herb Sutter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /> schreibt (als <em>Richtlinie</em>, nicht als Pflicht):</p>
<blockquote>
<p>Guideline<br />
Prefer preincrement. Only use postincrement if you're going to use the original value.</p>
</blockquote>
<p>Und weiter unten:</p>
<blockquote>
<p>... Is the compiler allowed to notice this and simply rewrite the postincrement as preincrement as an optimization?</p>
<p>The answer is: No, not in general. The only time the compiler is allowed to optimize away unnecessary postincrement by rewriting it as preincrement is for builtin and standard types, such as <code>int</code> and <code>complex</code> , whose semantics the compiler is allowed to know because they're standard.</p>
<p>For class types, on the other hand, the compiler can't know the actual semantics of postincrement and preincrement--indeed, the two actually might not do the same thing. It would be a terrible thing indeed if the two functions didn't have the same semantics, and any programmer who wrote them with different semantics should be sacked on the spot. But, in general, that doesn't help the compiler, because it can't assume that the programmer is consistent.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /><a href="http://www.amazon.de/Exceptional-Engineering-Programming-Problems-Solutions/dp/0201615622/ref=sr_1_1?ie=UTF8&amp;qid=1366743963&amp;sr=8-1" rel="nofollow">http://www.amazon.de/Exceptional-Engineering-Programming-Problems-Solutions/dp/0201615622/ref=sr_1_1?ie=UTF8&amp;qid=1366743963&amp;sr=8-1</a> Seite 20</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317887</guid><dc:creator><![CDATA[minastaros]]></dc:creator><pubDate>Tue, 23 Apr 2013 19:32:42 GMT</pubDate></item></channel></rss>