<?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[soll casten oder lieber nicht]]></title><description><![CDATA[<p>hallo,</p>
<p>ich wuerde gern wissen ob hier casten gut oder lieber nicht.</p>
<pre><code class="language-cpp">BYTE byVar = 24;
int nVar = 300;

// soll hier gecastet sein oder lieber nicht wege ungewueschte effekt
if (byVar == nVar) {
// mach irgendwas
}

// so etwa
if ((int)byVar == nVar) {
// mach irgendwas
}

// oder lieber so
if (byVar == (BYTE) nVar) {
// mach irgendwas
}
</code></pre>
<p>und wie siehts mit int und unsigned int aus??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287443/soll-casten-oder-lieber-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 10:25:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287443.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 May 2011 17:31:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 17:31:14 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich wuerde gern wissen ob hier casten gut oder lieber nicht.</p>
<pre><code class="language-cpp">BYTE byVar = 24;
int nVar = 300;

// soll hier gecastet sein oder lieber nicht wege ungewueschte effekt
if (byVar == nVar) {
// mach irgendwas
}

// so etwa
if ((int)byVar == nVar) {
// mach irgendwas
}

// oder lieber so
if (byVar == (BYTE) nVar) {
// mach irgendwas
}
</code></pre>
<p>und wie siehts mit int und unsigned int aus??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070196</guid><dc:creator><![CDATA[casting frage]]></dc:creator><pubDate>Sat, 28 May 2011 17:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 17:34:50 GMT]]></title><description><![CDATA[<p>Das sind sowieso beides (hässliche) C-Casts. Und der Cast ist unnütz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070197</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 28 May 2011 17:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 22:01:41 GMT]]></title><description><![CDATA[<p>Was ist BYTE, ich kenn nur char <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/2070259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070259</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 28 May 2011 22:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 22:09:06 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was ist BYTE</p>
</blockquote>
<p>Ein (unnötiges) <code>typedef</code> aus <code>&lt;windef.h&gt;</code> . Ich glaube so:</p>
<pre><code class="language-cpp">typedef unsigned char BYTE;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2070262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070262</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 28 May 2011 22:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 22:09:49 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was ist BYTE</p>
</blockquote>
<p>Ein (unnötiges) <code>typedef</code> aus <code>&lt;windef.h&gt;</code> . Ich glaube so:</p>
<pre><code class="language-cpp">typedef unsigned char BYTE;
</code></pre>
</blockquote>
<p>Ich weiß <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/2070263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070263</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 28 May 2011 22:09:49 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sat, 28 May 2011 22:10:49 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Ich weiß <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>
</blockquote>
<p>Aso. *IroniedetektorKick*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070264</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 28 May 2011 22:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 01:53:15 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>EOutOfResources schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was ist BYTE</p>
</blockquote>
<p>Ein (unnötiges) <code>typedef</code> aus <code>&lt;windef.h&gt;</code> . Ich glaube so:</p>
<pre><code class="language-cpp">typedef unsigned char BYTE;
</code></pre>
</blockquote>
<p>Ich weiß <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>
</blockquote>
<p>Dann lass solche sinnlosen Kommentare in Zukunft einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070298</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 29 May 2011 01:53:15 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 02:02:57 GMT]]></title><description><![CDATA[<p>@casting frage:</p>
<pre><code class="language-cpp">BYTE byVar = 24;
int nVar = 300;

// In diesem Fall vollkommen OK.
// Problem könnte es nur geben, wenn BYTE gleich breit ist wie int, und BYTE unsigned ist.
// Im Falle MSVC bzw. GCC unter Windows ist das allerdings nicht so.
// Und so lange BYTE schmäler ist als int, wird der BYTE Wert hier implizit nach int konvertiert vor dem Vergleich.
if (byVar == nVar) {
}

// Bitte gewöhne dir C-Style Casts ab. Ansonsten OK.
if ((int)byVar == nVar) {
}

// Ganz schlecht. Wenn nVar einen Wert hat der als BYTE nichtmehr dargestellt werden kann,
// könnte der Vergleich hier &quot;true&quot; Ergeben, obwohl die Werte gar nicht gleich sind.
if (byVar == (BYTE) nVar) {
}
</code></pre>
<blockquote>
<p>und wie siehts mit int und unsigned int aus??</p>
</blockquote>
<p>Jo, das ist etwas doof.<br />
Unsigned hat hier Vorrang, d.h. ohne Cast wird der int Wert zu unsigned int konvertiert. Wenn der int negativ war kommt dabei allerdings Unsinn raus. D.h. man müsste es so schreiben:</p>
<pre><code class="language-cpp">int intVal = ...;
unsigned int uintVal = ...;

// OK
if (intVal &gt;= 0 &amp;&amp; intVal == uintVal) {
}
</code></pre>
<p>Wenn der Compiler dabei ne Warning wirft, dann halt nochmal extra casten:</p>
<pre><code class="language-cpp">// zum Warning unterdrücken:
if (intVal &gt;= 0 &amp;&amp; static_cast&lt;unsigned int&gt;(intVal) == uintVal) {
}
</code></pre>
<p>Ist aber eigentlich überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070300</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 29 May 2011 02:02:57 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 05:54:44 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Was ist BYTE</p>
</blockquote>
<p>Ein (unnötiges) <code>typedef</code> aus <code>&lt;windef.h&gt;</code> . Ich glaube so:</p>
<pre><code class="language-cpp">typedef unsigned char BYTE;
</code></pre>
</blockquote>
<p>Was ist daran unnötig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070311</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 29 May 2011 05:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 05:59:07 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Was ist daran unnötig?</p>
</blockquote>
<p>Ich habe &quot;unnötig&quot; zwischen Klammern gesetzt, da z.B. ich es total nutzlos finde, hingegen aber andere nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070312</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 29 May 2011 05:59:07 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 06:44:26 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Ich habe &quot;unnötig&quot; zwischen Klammern gesetzt, da z.B. ich es total nutzlos finde, hingegen aber andere nicht.</p>
</blockquote>
<p>Es erhöht die Lesbarkeit des Codes und das ist nie unnötig.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a><br />
Es spielt keine große Rolle, ob du hier castest. Dein Compiler wird dies erkennen und beides folgendermaßen übersetzen:</p>
<pre><code class="language-asm">movzx       eax,byte ptr [byVar]  
xor         ecx,ecx  
cmp         eax,dword ptr [nVar]  
sete        cl
</code></pre>
<p>Die interessantere Frage ist hier, wie überhaupt dazu kommt, dass die beiden Variablen die du vergleichst unterschiedliche Typen haben. I.d.R. sollte dies eine Ausnahme sein, denn Vergleichen tut man nur &quot;sich gleichende&quot; Dinge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070319</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Sun, 29 May 2011 06:44:26 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 09:36:19 GMT]]></title><description><![CDATA[<blockquote>
<p>// Bitte gewöhne dir C-Style Casts ab. Ansonsten OK.</p>
</blockquote>
<p>Wieso? Gibt es irgendeinen Vorteil bei einem static_cast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070370</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Sun, 29 May 2011 09:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 09:39:26 GMT]]></title><description><![CDATA[<p>Ja, man sieht aus einer Meile Entfernung, was dort passiert. Außerdem sind die C++ Casts viel spezifischer, was wohin gecastet werden kann - hinter einem C-Cast kann sich nahezu alles verbergen, ohne daß du es ihm von außen ansiehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070372</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 29 May 2011 09:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 09:45:36 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>hinter einem C-Cast kann sich nahezu alles verbergen, ohne daß du es ihm von außen ansiehst.</p>
</blockquote>
<p>Vor allem weiß es ein unerfahrener Programmierer oftmals selber nicht, was der Cast gerade macht. Wenn man hingegen zu einem const_cast oder gar einem reinterpret_cast greifen muss um eine Konvertierung durchzuführen, hat man ein deutliches Alarmzeichen, dass da vielleicht was anderes nicht in Ordnung ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070378</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 29 May 2011 09:45:36 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 10:14:08 GMT]]></title><description><![CDATA[<p>Ok, danke <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/2070383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070383</guid><dc:creator><![CDATA[Wurstinator]]></dc:creator><pubDate>Sun, 29 May 2011 10:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 12:09:03 GMT]]></title><description><![CDATA[<p>vielen dank fuer eure antworten, einige sind sehr hilfreich. ich hatte noch mit alter source code und bad programmier style zu tun. weil sehr viel solche vergleiche da sind hab ich keine lust alles auf C++ cast umzuschreiben. grosser aufwand wenig wirkung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070435</guid><dc:creator><![CDATA[danke an alle]]></dc:creator><pubDate>Sun, 29 May 2011 12:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to soll casten oder lieber nicht on Sun, 29 May 2011 15:57:40 GMT]]></title><description><![CDATA[<p>danke an alle schrieb:</p>
<blockquote>
<p>... weil sehr viel solche vergleiche da sind hab ich keine lust alles auf C++ cast umzuschreiben. grosser aufwand wenig wirkung.</p>
</blockquote>
<p>Es mag in der Regel wenig Wirkung haben, in den Sonderfällen kann aber die Fehlersuche mehr Aufwand bedeuten, als der Aufwand es einmal zu korrigieren (Solche Fälle sind mir schon in echten Projekten untergelaufen, wo nur aus Faulheit keine C++ Casts verwendet wurden sind).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2070556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2070556</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Sun, 29 May 2011 15:57:40 GMT</pubDate></item></channel></rss>