<?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[Ergebnis einer Makro Funktion]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verstehe nicht, wie folgendes Ergebnis zustande kommt:</p>
<pre><code class="language-cpp">#define QUADRAT(x) ((x) * (x))

int main(void)
{
   double zahl = 4.0;
   QUADRAT(++zahl); //Ergebnis = 36??
}
</code></pre>
<p>Das ganze ist ein Lehrbeispiel, ich habe sämtliche Kombinationen von Klammerungen ausprobiert und komme nie auf die 36. Wisst ihr, was da intern passiert?</p>
<p>Greez<br />
Haimi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280894/ergebnis-einer-makro-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 23:20:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280894.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Jan 2011 16:28:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 16:28:55 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich verstehe nicht, wie folgendes Ergebnis zustande kommt:</p>
<pre><code class="language-cpp">#define QUADRAT(x) ((x) * (x))

int main(void)
{
   double zahl = 4.0;
   QUADRAT(++zahl); //Ergebnis = 36??
}
</code></pre>
<p>Das ganze ist ein Lehrbeispiel, ich habe sämtliche Kombinationen von Klammerungen ausprobiert und komme nie auf die 36. Wisst ihr, was da intern passiert?</p>
<p>Greez<br />
Haimi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2010675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010675</guid><dc:creator><![CDATA[Haimi]]></dc:creator><pubDate>Sun, 23 Jan 2011 16:28:55 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 16:31:59 GMT]]></title><description><![CDATA[<p>#define ist reine Textersetzung.<br />
So wird daraus: ((++zahl)*(++zahl))<br />
Meiner Meinung nach sollte da 30 rauskommen <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/2010681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010681</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 23 Jan 2011 16:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 16:37:09 GMT]]></title><description><![CDATA[<p>Tatsächlich...!</p>
<p>Unser Skript ist falsch... das verwirrt ja noch mehr als alles andere <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>
<p>Vielen Dank für die Erläuterung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2010683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010683</guid><dc:creator><![CDATA[Haimi]]></dc:creator><pubDate>Sun, 23 Jan 2011 16:37:09 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 16:51:32 GMT]]></title><description><![CDATA[<p>Nein, nichts ist falsch. Das Ergebnis von</p>
<pre><code class="language-cpp">((++zahl)*(++zahl))
</code></pre>
<p>ist nicht definiert. Denn wann die Inkrementierungen ausgeführt werden, ist dem Compiler überlassen.</p>
<p>Ich glaube, das Beispiel sollte damit genau einen Nachteil von Makros zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2010688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010688</guid><dc:creator><![CDATA[Richtigsteller]]></dc:creator><pubDate>Sun, 23 Jan 2011 16:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 17:28:37 GMT]]></title><description><![CDATA[<p>Das ist Compilerabhängig:</p>
<pre><code class="language-cpp">#define QUADRAT(x) ((x) * (x))

int main(void)
{
   double zahl = 4.0;
   QUADRAT(++zahl); 
}
</code></pre>
<p>denkbar wären:</p>
<pre><code class="language-cpp">((5) * (5))
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">((5)*(6));
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">((6)*(6));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2010706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010706</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Sun, 23 Jan 2011 17:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ergebnis einer Makro Funktion on Sun, 23 Jan 2011 19:50:48 GMT]]></title><description><![CDATA[<p>Ist das nicht sowieso UB? (Variable zwischen zwei Sequenzpunkten 2x ändern und so)<br />
Könnte also auch 42 oder &quot;Schweizerwurstsalat&quot; rauskommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2010787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2010787</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 23 Jan 2011 19:50:48 GMT</pubDate></item></channel></rss>