<?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[Probleme mit Typerkennung]]></title><description><![CDATA[<p>Ey, mein Thread wurde einfach in die FAQ verschoben und ich war noch gar nicht fertig <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/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Also Du kannst wenn Du es willst, dass hier noch dranhängen (wenn es denn was taugt). Hier gehts zur Vorgeschichte:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-247178.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-247178.html</a></p>
<p>Und so gehts weiter.... <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>
<p>Da bin ich nun schon einen ganzen Schritt weiter. Doch habe ich noch einige Fragen. Wenn ich an eine Variable f oder L anhänge, dann wird dadurch auch der Typ bestimmt, also float und long? Das bedeutet, dass das hier eine gültige deklaration ist:</p>
<pre><code class="language-cpp">2L; //oder:
long A=2; //ist das das gleiche?
</code></pre>
<p>Dann frage ich mich aber, warum das hier keine Probleme macht:</p>
<pre><code class="language-cpp">int A=2L;
</code></pre>
<p>Ich weise eine integer Variable einen long Wert zu. Greift hier das automatische Casting oder warum gibts keine Fehlermeldung?</p>
<p>Wäre das hier nicht doppeltgemoppelt:</p>
<pre><code class="language-cpp">long B=2L //zweimal als long deklariert?
</code></pre>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/247185/probleme-mit-typerkennung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 15:57:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/247185.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Aug 2009 11:15:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Typerkennung on Fri, 07 Aug 2009 11:16:18 GMT]]></title><description><![CDATA[<p>Ey, mein Thread wurde einfach in die FAQ verschoben und ich war noch gar nicht fertig <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/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Also Du kannst wenn Du es willst, dass hier noch dranhängen (wenn es denn was taugt). Hier gehts zur Vorgeschichte:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-247178.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-247178.html</a></p>
<p>Und so gehts weiter.... <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>
<p>Da bin ich nun schon einen ganzen Schritt weiter. Doch habe ich noch einige Fragen. Wenn ich an eine Variable f oder L anhänge, dann wird dadurch auch der Typ bestimmt, also float und long? Das bedeutet, dass das hier eine gültige deklaration ist:</p>
<pre><code class="language-cpp">2L; //oder:
long A=2; //ist das das gleiche?
</code></pre>
<p>Dann frage ich mich aber, warum das hier keine Probleme macht:</p>
<pre><code class="language-cpp">int A=2L;
</code></pre>
<p>Ich weise eine integer Variable einen long Wert zu. Greift hier das automatische Casting oder warum gibts keine Fehlermeldung?</p>
<p>Wäre das hier nicht doppeltgemoppelt:</p>
<pre><code class="language-cpp">long B=2L //zweimal als long deklariert?
</code></pre>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756859</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 07 Aug 2009 11:16:18 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Typerkennung on Fri, 07 Aug 2009 11:33:12 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">long A=2L; //oder:
long A=2; //ist das das gleiche?
</code></pre>
</blockquote>
<p>Da wird vermutlich implizit gecastet. Aber letztlich läuft es für dich doch auf das gleiche Resultat hinaus, oder?</p>
<p>freakC++ schrieb:</p>
<blockquote>
<p>Wäre das hier nicht doppeltgemoppelt:</p>
<pre><code class="language-cpp">long B=2L //zweimal als long deklariert?
</code></pre>
</blockquote>
<p>Na ja, eigentlich nicht. Du legst den Typ für B bei der Deklaration fest, und du bestimmst den Typ für die Konstante 2. Ob die jetzt zugewiesen wird, ist ja erstmal egal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756874</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 07 Aug 2009 11:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Typerkennung on Fri, 07 Aug 2009 11:51:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">2L;
</code></pre>
<p>Eine Deklaration ist etwas, dass einen Bezeichner einführt (oder in bestimmten Definition ein unbenanntes Objekt definiert).<br />
Das ist hier nicht der Fall, wir haben es mit einem &quot;expression statement&quot; zu tun (vernünftige Übersetzung gesucht, &quot;Ausdrucksstatement&quot; gefällt nicht).</p>
<pre><code class="language-cpp">2L
</code></pre>
<p>setllt ein Literal dar, also ein Ausdruck, der ein Konstante eines bestimmten Typs bezeichnet, diesem Fall eben die Konstante 2 des Typs long, dank des Suffix L.</p>
<pre><code class="language-cpp">long A=2;
</code></pre>
<p>Das ist eine Deklaration, in der der Bezeichner A eingeführt wird. Es ist zudem eine Definition, in der für die Variable Speicher reserviert wird. Zudem wird diese Variable gleichzeitig initialisiert. Der initialisierende Ausdruck hat den Wert 2 des Typs int (da 2 ein Literal des Typs int ist). int wird implizit in long konvertiert.</p>
<pre><code class="language-cpp">int A=2L;
</code></pre>
<p>analog. Ein int-Variable wird definiert und initialisiert. Der Ausdruck des Typs long wind implizit in int konvertiert. Da 2 in den Wertebereich von int fällt, ist das wohlgeformt.</p>
<p>Konvertierungen zwischen verschiedenen integralen Typen sind stets implizit möglich.</p>
<p>Ich habe mich vor ein paar Tagen zum Unterschied zwischen Cast und Konvertierung geäußert, kann den Beitrag aber gerade nicht finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756885</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 07 Aug 2009 11:51:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Typerkennung on Fri, 07 Aug 2009 12:03:57 GMT]]></title><description><![CDATA[<p>EDIT: Mal wieder zu langsam und natürlich nur bedingt &quot;camper-konform&quot; <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="😉"
    /><br />
Naja - ich lasse es mal stehen.</p>
<p>Ich vermute, Du verwechselst da was:</p>
<p>freakC++ schrieb:</p>
<blockquote>
<p>...Wenn ich an eine Variable f oder L anhänge...</p>
</blockquote>
<p>Nein!<br />
Es müsste heißen &quot;Wenn ich an <strong>einen Literal</strong> ...&quot;<br />
Dementsprechend:</p>
<p>freakC++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">2L; //oder:
long A=2; //ist das das gleiche?
</code></pre>
</blockquote>
<p>Nein, ist nicht das gleiche.<br />
Ersteres ist keine Deklaration, Zweiteres schon.<br />
Dabei taucht auch ein Literal auf (&quot;2&quot;) - genauergesagt ein Integerliteral -, den der Compiler klaglos als Initialisierer für die long-Variable A akzeptiert.</p>
<p>freakC++ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int A=2L;
</code></pre>
<p>Ich weise eine integer Variable einen long Wert zu. Greift hier das automatische Casting oder warum gibts keine Fehlermeldung?</p>
</blockquote>
<p>Ich vermute, dass der Compiler den Literal auswertet und von sich aus erkennt, dass er &quot;verlustlos&quot; in ein int passt. Ist aber IMHO kein vom Standard definiertes Verhalten.</p>
<p>freakC++ schrieb:</p>
<blockquote>
<p>Wäre das hier nicht doppeltgemoppelt:</p>
<pre><code class="language-cpp">long B=2L;
</code></pre>
</blockquote>
<p>Nein - das wäre genau das Richtige. (oftmals ist man aber zu faul)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756888</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 07 Aug 2009 12:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Typerkennung on Fri, 07 Aug 2009 12:38:02 GMT]]></title><description><![CDATA[<p>Ich möchte noch hinzufügen, dass ohne Suffix der Typ eines Ganzzahl-Literals noch nicht eindeutig festgelegt ist. Der Typ hängt auch vom Zahlenwert und den Wertebereichen der Typen ab. So kann das Literal <code>0x9000</code> auf einem System ein <code>int</code> sein und auf einem anderen ein <code>unsigned int</code> sein, weil <code>int</code> eventuell nur Zahlen bis <code>0x7FFF</code> darstellen kann.</p>
<p>Eine nette Übersicht liefert der Standard. Ich habe davon keine Kopie, aber <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf" rel="nofollow">diese Version</a> tut es auch. Siehe Kapitel 2.13 (Seiten 18-23).</p>
<p>Man beachte, dass das verlinkte PDF ein sehr früher Entwurf von C++0x ist, welches die Typen <code>long long</code> und <code>unsigned long long</code> enthält. Diese gibt es aber offiziell nicht bei C++98 oder C++03.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1756921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1756921</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Fri, 07 Aug 2009 12:38:02 GMT</pubDate></item></channel></rss>