<?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[Verschachtelungstiefe]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe in einem Programm eine ellenlange abfolge von &quot;else if&quot;:</p>
<pre><code class="language-cpp">if
...
else if
...
else if
usw..
else
</code></pre>
<p>Als ich ein weiteres reinhängen wollte, kam plötzlich folgede Fehlermeldung:</p>
<pre><code class="language-cpp">fatal error C1061: Compilerlimit: Blöcke zu tief geschachtelt
</code></pre>
<p>Nach einem grossen Fragezeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> habe ich dann gesehen, dass max. 128 Verzweigungen möglich sind. Ich wusste gar nicht, dass es da ein Limit gibt. Nun ist die Frage, wie ich das verbessere. Natürlich ist eine Möglichkeit, daraus ein case zu machen, oder gibt es dort auch einen maximale Anzahl?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/66946/verschachtelungstiefe</link><generator>RSS for Node</generator><lastBuildDate>Sat, 06 Jun 2026 05:43:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/66946.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Mar 2004 06:39:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verschachtelungstiefe on Thu, 04 Mar 2004 06:39:04 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Ich habe in einem Programm eine ellenlange abfolge von &quot;else if&quot;:</p>
<pre><code class="language-cpp">if
...
else if
...
else if
usw..
else
</code></pre>
<p>Als ich ein weiteres reinhängen wollte, kam plötzlich folgede Fehlermeldung:</p>
<pre><code class="language-cpp">fatal error C1061: Compilerlimit: Blöcke zu tief geschachtelt
</code></pre>
<p>Nach einem grossen Fragezeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> habe ich dann gesehen, dass max. 128 Verzweigungen möglich sind. Ich wusste gar nicht, dass es da ein Limit gibt. Nun ist die Frage, wie ich das verbessere. Natürlich ist eine Möglichkeit, daraus ein case zu machen, oder gibt es dort auch einen maximale Anzahl?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/472792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/472792</guid><dc:creator><![CDATA[Plotter]]></dc:creator><pubDate>Thu, 04 Mar 2004 06:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelungstiefe on Thu, 04 Mar 2004 07:55:40 GMT]]></title><description><![CDATA[<p>Ähm ... Ich denke, du hast da irgendwas falsch strukturiert und solltest es ganz anders aufbauen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/472817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/472817</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Thu, 04 Mar 2004 07:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelungstiefe on Thu, 04 Mar 2004 08:34:37 GMT]]></title><description><![CDATA[<p>Hab schon gedacht, dass so was kommt. Das Programm ist leider nicht auf meinem Mist gewachsen, ich entwickle es nur weiter.</p>
<p>Aber selbst wenn die bisherige Lösung alles andere als elegant ist kann ich jetzt auf die schnelle nicht so viel umkrempeln. Würde ich zwar gerne, aber mein Chef lässt mir nicht so viel Zeit.</p>
<p>Aber ein paar Dinge muss ich sicherlich ändern, denn bei den &quot;else if&quot; habe ich lauter strcmp drin, und der eine String wurde mit #define definiert. Case braucht aber eine numerische Konstante.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/472822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/472822</guid><dc:creator><![CDATA[Plotter]]></dc:creator><pubDate>Thu, 04 Mar 2004 08:34:37 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelungstiefe on Thu, 04 Mar 2004 11:22:47 GMT]]></title><description><![CDATA[<p>Plotter schrieb:</p>
<blockquote>
<p>Aber selbst wenn die bisherige Lösung alles andere als elegant ist kann ich jetzt auf die schnelle nicht so viel umkrempeln. Würde ich zwar gerne, aber mein Chef lässt mir nicht so viel Zeit.</p>
</blockquote>
<p>ihr solltet mal ernsthaft miteinader reden. der chef hat doch was an der waffel, wenn er so viel zeitdruck macht, daß die softwarequalität dabei rapide abkackt. das kann einfach nicht im sinne des unternehmens sein.</p>
<p>Plotter schrieb:</p>
<blockquote>
<p>Aber ein paar Dinge muss ich sicherlich ändern, denn bei den &quot;else if&quot; habe ich lauter strcmp drin, und der eine String wurde mit #define definiert. Case braucht aber eine numerische Konstante.... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
</blockquote>
<p>naja, geht schon.<br />
vormals:</p>
<pre><code class="language-cpp">#define ICH &quot;volkard&quot;
#define DU &quot;Plotter&quot;
#define CHEF &quot;Marc++us&quot;
...
if(strcmp(str,ICH))
   cout&lt;&lt;&quot;Lohnerhöhung&quot;;
else if(strcmp(str,DU))
   cout&lt;&lt;&quot;C++-Buch&quot;;
else if(strcmp(str,CHEF))
   cout&lt;&lt;&quot;neues Auto&quot;;
else
   cout&lt;&lt;&quot;nix&quot;;
</code></pre>
<p>jetzt</p>
<pre><code class="language-cpp">#define ICH 0
#define DU 1
#define CHEF 2
#define MAXID 3
char* Namen[]={&quot;Volkard&quot;,&quot;Plotter&quot;,&quot;Marc++us&quot;};
int nameToID(char* str)
{
   for(int i=0;i&lt;MAXID;++i)
      if(strcmp(Namen[i],str)==0)
         return i;
   return -1;
}
...
switch(nameToID(str)){
case ICH:
   cout&lt;&lt;&quot;Lohnerhöhung&quot;;
case DU:
   cout&lt;&lt;&quot;C++-Buch&quot;;
case CHEF:
   cout&lt;&lt;&quot;neues Auto&quot;;
default:
   cout&lt;&lt;&quot;nix&quot;;
</code></pre>
<p>ups, wenn die #defines im fremden header sind, darfste ja nix dran machen.</p>
<pre><code class="language-cpp">#define ICH_ID 0 
#define DU_ID 1 
#define CHEF_ID 2 
#define MAX_ID 3 
char* Namen[]={ICH,DU,CHEF};
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/472955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/472955</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 04 Mar 2004 11:22:47 GMT</pubDate></item><item><title><![CDATA[Reply to Verschachtelungstiefe on Thu, 04 Mar 2004 13:56:36 GMT]]></title><description><![CDATA[<p>Nun manchmal muss es bei der Entwicklung halt schnell gehen. Und die Software hat inzwischen eine solche Dimension bekommen, dass ein schnellschnell-Umbau schlicht nicht möglich ist. Ich habe den Vorschlag einer Neukonzeption gemacht, und den Zeitbedarf nicht unter einem Jahr angegeben. Und das liegt momentan einfach nicht drin.</p>
<p>Aber nun zu meinem Problem, ich habe es so gelöst, dass ich diese Abfrage in eine eigene Funktion verpacke, und statt den ewigen &quot;else if&quot;s nur noch if Anweisungen nehme, die ich bei Erfolg mit return true abbrechen kann. Ist für mich die einfachste und schnellste Lösung.</p>
<p>Danke Leute!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/473108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/473108</guid><dc:creator><![CDATA[Plotter]]></dc:creator><pubDate>Thu, 04 Mar 2004 13:56:36 GMT</pubDate></item></channel></rss>