<?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[Imkrement Operator: Wann postfix und wann prefix verwenden?]]></title><description><![CDATA[<p>++n<br />
n++</p>
<p>Was wann? Ich würde pauschal sagen, immer ++n, weil es keinen Seiteneffekt gibt. Außer man frickelt und das wird gewünscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198569/imkrement-operator-wann-postfix-und-wann-prefix-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 23:52:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198569.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2007 20:40:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Thu, 22 Nov 2007 20:40:26 GMT]]></title><description><![CDATA[<p>++n<br />
n++</p>
<p>Was wann? Ich würde pauschal sagen, immer ++n, weil es keinen Seiteneffekt gibt. Außer man frickelt und das wird gewünscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408473</guid><dc:creator><![CDATA[übercoder]]></dc:creator><pubDate>Thu, 22 Nov 2007 20:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Thu, 22 Nov 2007 20:43:26 GMT]]></title><description><![CDATA[<p>je nach dem ob zuerst inkrementiert werden soll oder zuerst der wert zurückgegeben soll.</p>
<p>Wenn erst inkrementiert udn dann zurückgegeben soll, dann : ++c</p>
<p>Wenn erst wert zurückgegeben soll und erst dann erhöht, dann c++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408477</guid><dc:creator><![CDATA[asdfsfdf]]></dc:creator><pubDate>Thu, 22 Nov 2007 20:43:26 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Thu, 22 Nov 2007 21:00:59 GMT]]></title><description><![CDATA[<p>asdfsfdf schrieb:</p>
<blockquote>
<p>Wenn erst inkrementiert udn dann zurückgegeben soll, dann : ++c<br />
Wenn erst wert zurückgegeben soll und erst dann erhöht, dann c++</p>
</blockquote>
<p>richtig, einen anderen grund gibt es nicht. sollten unerwünschte nebeneffekte auftreten: programmiersprache wechseln.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408483</guid><dc:creator><![CDATA[dummfix]]></dc:creator><pubDate>Thu, 22 Nov 2007 21:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 08:15:28 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>laut Meyers gibt es aber doch einen gewaltigen Performanceunterschied zwischen beiden. Hab aber leider nicht im Kopf welcher nun besser ist und das Buch auch nicht in Reichweite.</p>
<p>Gruß Mümmel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408600</guid><dc:creator><![CDATA[muemmel]]></dc:creator><pubDate>Fri, 23 Nov 2007 08:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 08:32:02 GMT]]></title><description><![CDATA[<p>Beide Operatoren haben einen <strong>beabsichtigten</strong> Seiteneffekt - sie erhöhen die Variable, auf die sie angewendet werden (aus technischer Sicht ist der primäre Effekt die Wertrückgabe).</p>
<p>Und als Entscheidungsgrundlage: Wenn der Rückgabewert des Operators weiter ausgewertet werden soll, nimm die Variante, die das richtige Ergebnis liefert (++x liefert den erhöhten Wert, x++ den Originalwert). Wenn der Rückgabewert egal ist, nimm ++x, der ist potentiell schneller<sup>*</sup>.</p>
<p><sup>*</sup> Bei Build-in Typen macht es in der Regel keinen Unterschied, aber selbstdefinierte Typen müssen sich idR kopieren, um die Semantik von op++ erfüllen zu können - und dieses Kopieren kann teuer sein (und nicht jeder Compiler ist in der Lage es zu optimieren).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408605</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Nov 2007 08:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 08:59:12 GMT]]></title><description><![CDATA[<p>sorry war falsch hier</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408624</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 23 Nov 2007 08:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 11:03:28 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Und als Entscheidungsgrundlage: Wenn der Rückgabewert des Operators weiter ausgewertet werden soll, nimm die Variante, die das richtige Ergebnis liefert (++x liefert den erhöhten Wert, x++ den Originalwert). Wenn der Rückgabewert egal ist, nimm ++x, der ist potentiell schneller</p>
</blockquote>
<p>Anders gesagt: Immer Präfix, außer Du brauchst Postfix. <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/1408721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408721</guid><dc:creator><![CDATA[nman]]></dc:creator><pubDate>Fri, 23 Nov 2007 11:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 11:28:06 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn der Rückgabewert egal ist, nimm ++x, der ist potentiell schneller<sup>*</sup>.</p>
</blockquote>
<p>wieso könnte der schneller sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408741</guid><dc:creator><![CDATA[stutzig]]></dc:creator><pubDate>Fri, 23 Nov 2007 11:28:06 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 11:33:30 GMT]]></title><description><![CDATA[<p>stutzig schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn der Rückgabewert egal ist, nimm ++x, der ist potentiell schneller<sup>*</sup>.</p>
</blockquote>
<p>wieso könnte der schneller sein?</p>
</blockquote>
<pre><code class="language-cpp">class A {
  A &amp;operator++() { ... return *this; } //prefix
  A operator++(int) { // postfix
    A tmp(*this);
    ++*this;
    return tmp;
  }
};
</code></pre>
<p>Aber war es nicht so, dass der Compiler auch bei Builtin-Typen a++ zu ++a machen konnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408746</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Fri, 23 Nov 2007 11:33:30 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 11:50:49 GMT]]></title><description><![CDATA[<p>stutzig schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn der Rückgabewert egal ist, nimm ++x, der ist potentiell schneller<sup>*</sup>.</p>
</blockquote>
<p>wieso könnte der schneller sein?</p>
</blockquote>
<p>Vielleicht solltest du nicht mitten im Beitrag aufhören mit Lesen - das hochgestellte * kennzeichnet bei mir normalerweise Fußnoten, die weiter unten erläutert werden <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/142">@rüdiger</a>: Bei Build-ins durchaus - bei selbstgebauten Typen eher nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408763</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Nov 2007 11:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 12:36:19 GMT]]></title><description><![CDATA[<p>Bei selbstgebauten Typen ist es auch oft kein Problem alles wegzuoptimieren was post-inkrement langsamer machen könnte. Manchmal aber eben schon.</p>
<p>Das Problem ist dabei denke ich weniger der Compiler, als z.B. Funktionen deren Implementierung der Compiler nicht kennt, und die daher aufgerufen werden müssen (könnten ja erwünschte Seiteneffekte haben). z.B. das Locken von Mutexen, &quot;interlocked&quot; Funktionen oder dynamische Speicheranforderungen können im Normalfall nicht wegoptimiert werden.</p>
<p>Von daher die Regel: wenn post- oder pre- egal ist, dann pre-inkrement.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408788</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 23 Nov 2007 12:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 13:04:25 GMT]]></title><description><![CDATA[<p>ach so <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="😮"
    /><br />
ihr meint ganz speziell c++.<br />
gilt es auch für andere programmiersprachen mit ++ operator?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1408807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1408807</guid><dc:creator><![CDATA[stutzig]]></dc:creator><pubDate>Fri, 23 Nov 2007 13:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 19:22:45 GMT]]></title><description><![CDATA[<p>Was &quot;wir&quot; meinen kann ich nicht sagen, *ich* habe die Frage so interpretiert - ist halt ein C++ Forum hier.</p>
<p>Was für andere Sprachen gilt kann ich nicht sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1409071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409071</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 23 Nov 2007 19:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Fri, 23 Nov 2007 22:09:40 GMT]]></title><description><![CDATA[<p>Die Problematik existiert für alle Programmiersprachen, mit selbst definierbaren ++-Operatoren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1409128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1409128</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Fri, 23 Nov 2007 22:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Imkrement Operator: Wann postfix und wann prefix verwenden? on Mon, 26 Nov 2007 07:52:37 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a>: Ja, wenn der Compiler den Code hat - und ausreichend Intelligenz besitzt.</p>
<p>@stutzig: Das Problem wird immer dann interessant, wenn es zwei verschiedene Inkrement-Funktionen gibt - die unabhängig voneinander implementiert werden könnten (C# und D definieren afaik eine Funktion für beide Varianten - da macht sich das Optimieren etwas einfacher).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1410162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1410162</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 26 Nov 2007 07:52:37 GMT</pubDate></item></channel></rss>