<?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[Variablen in case-Zweigen]]></title><description><![CDATA[<p>Code dieser Art hab ich jetzt schon mehrmals gesehen:</p>
<pre><code class="language-cpp">switch(whatever)
{
   case 1: 
       int i = 42;
       //..
   break;
   case 2:
       //..
   break;
}
</code></pre>
<p>Hier beschwert sich aber mein Compiler, da <strong>i</strong> ja nur initialisiert wird wenn der obere case-Zweig eintritt.<br />
Schreibe ich aber</p>
<pre><code class="language-cpp">case 1: 
       int i;
       i = 42;
       //..
</code></pre>
<p>wird problemlos compiliert. Offensichtlich wird <strong>i</strong> also nur angelegt, wenn der case-zweig auch eingetreten ist. Wo ist also der Unterschied zwischen den beiden Schreibweisen ?</p>
<p>Edit: Hab uebrigends gemerkt das ein Codeblock hier in jedem Fall Abhilfe schafft.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164132/variablen-in-case-zweigen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 16:49:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164132.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Nov 2006 13:58:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variablen in case-Zweigen on Sun, 05 Nov 2006 14:00:43 GMT]]></title><description><![CDATA[<p>Code dieser Art hab ich jetzt schon mehrmals gesehen:</p>
<pre><code class="language-cpp">switch(whatever)
{
   case 1: 
       int i = 42;
       //..
   break;
   case 2:
       //..
   break;
}
</code></pre>
<p>Hier beschwert sich aber mein Compiler, da <strong>i</strong> ja nur initialisiert wird wenn der obere case-Zweig eintritt.<br />
Schreibe ich aber</p>
<pre><code class="language-cpp">case 1: 
       int i;
       i = 42;
       //..
</code></pre>
<p>wird problemlos compiliert. Offensichtlich wird <strong>i</strong> also nur angelegt, wenn der case-zweig auch eingetreten ist. Wo ist also der Unterschied zwischen den beiden Schreibweisen ?</p>
<p>Edit: Hab uebrigends gemerkt das ein Codeblock hier in jedem Fall Abhilfe schafft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168880</guid><dc:creator><![CDATA[Chase]]></dc:creator><pubDate>Sun, 05 Nov 2006 14:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Variablen in case-Zweigen on Sun, 05 Nov 2006 14:00:41 GMT]]></title><description><![CDATA[<p>omg, was hast du für einen Compiler???</p>
<p>die beiden Schreibweisen müssten identsich sein.</p>
<p>benutzt du manchmal bei 1. noch außerhalb i oder so??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168883</guid><dc:creator><![CDATA[ESS_CB]]></dc:creator><pubDate>Sun, 05 Nov 2006 14:00:41 GMT</pubDate></item><item><title><![CDATA[Reply to Variablen in case-Zweigen on Sun, 05 Nov 2006 14:04:51 GMT]]></title><description><![CDATA[<p>ESS_CB schrieb:</p>
<blockquote>
<p>omg, was hast du für einen Compiler???</p>
<p>die beiden Schreibweisen müssten identsich sein.</p>
<p>benutzt du manchmal bei 1. noch außerhalb i oder so??</p>
</blockquote>
<p>Ich dachte auch immer dass die Schreibweisen identisch waeren. &quot;i&quot; wird sonst nirgends benutzt. Compiler.. gcc nehm ich an, ich benutzte Visual Studio 2005 Express.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168886</guid><dc:creator><![CDATA[Chase]]></dc:creator><pubDate>Sun, 05 Nov 2006 14:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Variablen in case-Zweigen on Sun, 05 Nov 2006 15:20:11 GMT]]></title><description><![CDATA[<p>Spendiere dem Ganzen noch ein paar Klammern und die Sache geht in Ordnung:</p>
<pre><code class="language-cpp">switch(whatever)
{
   case 1: 
   {
       int i = 42;
       //..
   }
   break;
   case 2:
   {
       //..
   }
   break;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1168933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168933</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Sun, 05 Nov 2006 15:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to Variablen in case-Zweigen on Sun, 05 Nov 2006 21:14:37 GMT]]></title><description><![CDATA[<p>Das Problem ist dass du eine Variable initialisiertst, aber über diese initialisierung drüberspringst, nämlich wenn er z.B. zu case 2 springt.<br />
Mach mal alles bis auf den &quot;case 1&quot; Teil weg, dann sollte es gehen.</p>
<p>Ist genau das gleiche wie sowas:</p>
<pre><code class="language-cpp">// ...
    if(blubb())
        goto x;

    int i = 123;
x:
    printf(&quot;%d\n&quot;, i);
</code></pre>
<p>Das ist auch nicht erlaubt, selber Grund.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169240</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:14:37 GMT</pubDate></item></channel></rss>