<?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[Wenn static_cast und reinterpret_cast funktioniert - welches nehmen?]]></title><description><![CDATA[<p>Wenn man einen Code hat in dem static_cast und reinterpret_cast genau das selbe verursachen, welches sollte man dann bevorzugen?</p>
<p>z.B. bei</p>
<pre><code class="language-cpp">void* p1 = NULL;
void* p2 = static_cast&lt;char*&gt;(p1) + 1000;
void* p3 = reinterpret_cast&lt;char*&gt;(p1) + 1000;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/177744/wenn-static_cast-und-reinterpret_cast-funktioniert-welches-nehmen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 26 Jun 2026 22:07:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177744.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Apr 2007 16:40:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wenn static_cast und reinterpret_cast funktioniert - welches nehmen? on Tue, 03 Apr 2007 16:40:28 GMT]]></title><description><![CDATA[<p>Wenn man einen Code hat in dem static_cast und reinterpret_cast genau das selbe verursachen, welches sollte man dann bevorzugen?</p>
<p>z.B. bei</p>
<pre><code class="language-cpp">void* p1 = NULL;
void* p2 = static_cast&lt;char*&gt;(p1) + 1000;
void* p3 = reinterpret_cast&lt;char*&gt;(p1) + 1000;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1258727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258727</guid><dc:creator><![CDATA[bachkippe]]></dc:creator><pubDate>Tue, 03 Apr 2007 16:40:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wenn static_cast und reinterpret_cast funktioniert - welches nehmen? on Tue, 03 Apr 2007 16:44:37 GMT]]></title><description><![CDATA[<p>Wenn static_cast geht, dann nimm es.<br />
So hab ich das zumindest gelernt.<br />
Static_cast gibt auch Fehler aus, wenn die Konvertierung nicht möglich ist.<br />
Reinterpret_cast macht es einfach.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258730</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Tue, 03 Apr 2007 16:44:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wenn static_cast und reinterpret_cast funktioniert - welches nehmen? on Tue, 03 Apr 2007 16:45:11 GMT]]></title><description><![CDATA[<p>Im Allgemeinen static_cast&lt;&gt; - da bietest du dem Compiler noch die Chance, ein paar Fehler abzufangen. Aber so, wie du das angewendet hast, ist beides Müll (p1 zeigt kontrolliert auf NULL, p2 und p3 zeigen irgendwo in den Speicher).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258732</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 Apr 2007 16:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Wenn static_cast und reinterpret_cast funktioniert - welches nehmen? on Tue, 03 Apr 2007 21:59:27 GMT]]></title><description><![CDATA[<p>Das ist sowieso so ziemlich der einzige Fall abgesehen von Exoten wie unten, bei dem sich beide Casts gleich verhalten. Da es hier um die Umkehrung einer impliziten Konvertierung geht, ist im Grunde static_cast angebracht. Es existieren aber auch Fälle, bei denen ein reinterpret_cast logischer erscheint.<br />
Spaß mit casts:</p>
<pre><code class="language-cpp">struct Foo
{
    operator int&amp;() { return reinterpret_cast&lt; int&amp; &gt;( *this ); }
};

Foo bar;
assert( static_cast&lt; int&amp; &gt;( bar ) == reinterpret_cast&lt; int&amp; &gt;( bar ) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1258867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258867</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 03 Apr 2007 21:59:27 GMT</pubDate></item></channel></rss>