<?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[zuweisung von literal an short]]></title><description><![CDATA[<p>codewarrior meckert bei jeder zuweisung von literal an nicht-int wegen implizierter konvertierung rum. also bspw.</p>
<pre><code class="language-cpp">short value = 12; // warnung wg. zuweisung von int an short
</code></pre>
<p>msvc meckert bei solchen zuweisungen nicht - zumindest nicht bei den standardeinstellungen. ist codewarrior nun dümmer oder nur gründlicher? muss ich hier mit performance-einbußen rechnen, weil eine konvertierung von 32 bit nach 16 bit zur laufzeit passiert?</p>
<p>also schreibe ich mittlerweile immer</p>
<pre><code class="language-cpp">short value = short(12);
</code></pre>
<p>es gibt nicht rein zufällig ein passendes suffix in der art von <code>L</code> , womit ich das literal als short ausweisen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220265/zuweisung-von-literal-an-short</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 09:55:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220265.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Aug 2008 19:25:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zuweisung von literal an short on Wed, 13 Aug 2008 19:25:26 GMT]]></title><description><![CDATA[<p>codewarrior meckert bei jeder zuweisung von literal an nicht-int wegen implizierter konvertierung rum. also bspw.</p>
<pre><code class="language-cpp">short value = 12; // warnung wg. zuweisung von int an short
</code></pre>
<p>msvc meckert bei solchen zuweisungen nicht - zumindest nicht bei den standardeinstellungen. ist codewarrior nun dümmer oder nur gründlicher? muss ich hier mit performance-einbußen rechnen, weil eine konvertierung von 32 bit nach 16 bit zur laufzeit passiert?</p>
<p>also schreibe ich mittlerweile immer</p>
<pre><code class="language-cpp">short value = short(12);
</code></pre>
<p>es gibt nicht rein zufällig ein passendes suffix in der art von <code>L</code> , womit ich das literal als short ausweisen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564310</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Wed, 13 Aug 2008 19:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 11:38:20 GMT]]></title><description><![CDATA[<p>wieso sollte die zuweisung zur laufzeit geschehen, der wert (12) steht doch schon zur compilezeit fest.<br />
Warum Codewarrior daa rummeckert, verstehe ich allerdings auch nicht, denn selbst der müsste wissen, dass 12 innerhalb der Grenzen eines shorts liegt. GCC kompiliert es.<br />
edit: der gcc warnt aber, wenn ich eine so große zahl eingebe, die einen überlauf zu folge hätte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564633</guid><dc:creator><![CDATA[Heinzelotto]]></dc:creator><pubDate>Thu, 14 Aug 2008 11:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 11:49:03 GMT]]></title><description><![CDATA[<p>Ich glaube es war nur ein Beispiel und bei der Zuweisung kann wohl auch eine Variable stehen. Vermute ich mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564650</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 14 Aug 2008 11:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 11:56:46 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Ich glaube es war nur ein Beispiel und bei der Zuweisung kann wohl auch eine Variable stehen. Vermute ich mal...</p>
</blockquote>
<p>Naja, da er von einem Literal spricht, dann wird da keine Variable stehen dürfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564657</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 14 Aug 2008 11:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 11:58:41 GMT]]></title><description><![CDATA[<p>Pöh. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564663</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 14 Aug 2008 11:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 12:23:37 GMT]]></title><description><![CDATA[<p>ich merke gerade, dass ich das problem falsch dargestellt habe. die warnung kommt nicht bei *jeder* zuweisung. ein beispiel:</p>
<pre><code class="language-cpp">std::pair&lt;short, short&gt; foo = std::make_pair(42, 23); // Warning: implicit arithmetic conversion from 'int' to 'short'

std::pair&lt;short, short&gt; bar = std::make_pair(short(42), short(23)); // ok

short baz = 12; // auch ok
</code></pre>
<p>Heinzelotto schrieb:</p>
<blockquote>
<p>wieso sollte die zuweisung zur laufzeit geschehen, der wert (12) steht doch schon zur compilezeit fest.</p>
</blockquote>
<p>vielleicht weil der compiler dumm ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564691</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 12:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 12:49:41 GMT]]></title><description><![CDATA[<p>Nein, in dem Fall ist die Warnung sehr korrekt. Ich bin ehrlich gesagt etwas erstaunt, dass der Code überhaupt funktioniert. Die STL ist noch besser, als ich es gedacht hatte ^^<br />
<code>std::make_pair(42, 23)</code> liefert dir ein Objekt von Typ <code>std::pair&lt;int, int&gt;</code> zurück. Dieses wird dann dem <code>std::pair&lt;short, short&gt;</code> zugewiesen. Bei der Zuweisung kommt natürlich die Warnung, da der Compiler nicht mehr weiss, was in den Variablen steht.<br />
Um das zu umgehen, könntest du vielleicht das hier machen:</p>
<pre><code class="language-cpp">std::pair&lt;short, short&gt; foo = std::make_pair&lt;short, short&gt;(42, 23);
</code></pre>
<p>Du gibst explizit an, dass du ein <code>std::pair&lt;short, short&gt;</code> möchtest.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564713</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 14 Aug 2008 12:49:41 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 12:57:06 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Ich glaube es war nur ein Beispiel und bei der Zuweisung kann wohl auch eine Variable stehen. Vermute ich mal...</p>
</blockquote>
<p>Naja, da er von einem Literal spricht, dann wird da keine Variable stehen dürfen.</p>
</blockquote>
<p>Ha, und doch recht gehabt <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="😃"
    /> <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/1564721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564721</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 14 Aug 2008 12:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:15:27 GMT]]></title><description><![CDATA[<p>das beispiel war jetzt aus der luft gegriffen, tatsächlich steht sowas da:</p>
<pre><code class="language-cpp">typedef TollesFramework::Vector2&lt;short, short&gt; Point2D;
Point2D foo(23, 42);
</code></pre>
<p>und dabei kommt die warnung. ich weiß gerade nicht, was das template intern so treibt, aber wahrscheinlich ist es ähnlich dem pair-beispiel. ich kann die warnung mit einfachen zuweisungen nicht reproduzieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564740</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:23:34 GMT]]></title><description><![CDATA[<p>jetzt hab ichs:</p>
<pre><code class="language-cpp">short foo = 23;
short baz = foo + 42; // Warning: implicit conversion from 'int' to 'short'
</code></pre>
<p>ist nicht normal, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564747</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:25:13 GMT]]></title><description><![CDATA[<p>Doch. Denn bei einem binären Operator werden beide Operanden auf den höheren/größeren etc. gecastet. Das Ergebnis von short + int ist ein int.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564751</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:25:13 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:27:52 GMT]]></title><description><![CDATA[<p>und hat dann <code>bar = foo + short(42);</code> irgendeinen nachteil, außer dass man mehr tippen muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564754</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:31:51 GMT]]></title><description><![CDATA[<p>msvc zeigt übrigens bei dem code auch in der höchsten warnstufe nix an, deshalb hats mich so gewundert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564756</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:31:51 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:36:38 GMT]]></title><description><![CDATA[<p>und comeau mit --strict-warnings auch nicht... <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/1564764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564764</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:38:01 GMT]]></title><description><![CDATA[<p>ARMer progger schrieb:</p>
<blockquote>
<p>und hat dann <code>bar = foo + short(42);</code> irgendeinen nachteil, außer dass man mehr tippen muss?</p>
</blockquote>
<p>Es hat keinen Vorteil, weil es die entsprechende Warnung nicht unterdrücken dürfte. Denn auch das Ergebnis von<br />
foo+short(42)<br />
hat den Typ int</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564765</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisung von literal an short on Thu, 14 Aug 2008 13:41:56 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>foo+short(42)<br />
hat den Typ int</p>
</blockquote>
<p>ich meinte ja auch <code>short(foo + 42)</code> , bin aber zu blöd das auch zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564770</guid><dc:creator><![CDATA[ARMer progger]]></dc:creator><pubDate>Thu, 14 Aug 2008 13:41:56 GMT</pubDate></item></channel></rss>