<?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[goto&#x27;s verwenden]]></title><description><![CDATA[<p>hallo leute,<br />
ich wollte mal fragen ob ihr auch goto's in c/c++ code verwendet.<br />
immer wird gesagt das goto unschön ist und man den befehl vermeiden soll, wegen spagetiprogammierung. da ic haber viel mit assembler mache, habe ich auch in c kein problem damit die übersicht über das poject zu behalten, selbst wenn es viele goto's sind.<br />
außerdem gibt es fälle bei denen man um ein goto nicht rumkommt oder wo es mit einem goto schneller und einfacher zu realisieren ist.<br />
wie sieht es bei euch aus?? verwendet ihr auch welche, oder versucht ihr es irgendwie zu umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160969/goto-s-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 14:30:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160969.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Oct 2006 20:16:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:16:59 GMT]]></title><description><![CDATA[<p>hallo leute,<br />
ich wollte mal fragen ob ihr auch goto's in c/c++ code verwendet.<br />
immer wird gesagt das goto unschön ist und man den befehl vermeiden soll, wegen spagetiprogammierung. da ic haber viel mit assembler mache, habe ich auch in c kein problem damit die übersicht über das poject zu behalten, selbst wenn es viele goto's sind.<br />
außerdem gibt es fälle bei denen man um ein goto nicht rumkommt oder wo es mit einem goto schneller und einfacher zu realisieren ist.<br />
wie sieht es bei euch aus?? verwendet ihr auch welche, oder versucht ihr es irgendwie zu umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147630</guid><dc:creator><![CDATA[itwasntpete]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:16:59 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:23:23 GMT]]></title><description><![CDATA[<p>pi88el schrieb:</p>
<blockquote>
<p>hallo leute,<br />
ich wollte mal fragen ob ihr auch goto's in c/c++ code verwendet.<br />
immer wird gesagt das goto unschön ist und man den befehl vermeiden soll, wegen spagetiprogammierung. da ic haber viel mit assembler mache, habe ich auch in c kein problem damit die übersicht über das poject zu behalten, selbst wenn es viele goto's sind.<br />
außerdem gibt es fälle bei denen man um ein goto nicht rumkommt oder wo es mit einem goto schneller und einfacher zu realisieren ist.<br />
wie sieht es bei euch aus?? verwendet ihr auch welche, oder versucht ihr es irgendwie zu umgehen?</p>
</blockquote>
<p>vergiss goto. Das müsste man verbieten. ps: Vile spaß beim debuggen ienes ca 5000 zeilen programms welches 300 gotos beinhaltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147631</guid><dc:creator><![CDATA[fdgdf]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:23:23 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:23:30 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Du musst auch bedenken, dass es auch mal sein kann, dass auch andere Leute deinen Code lesen wollen/müssen.<br />
Also nach Möglichkeit vermeide ich gotos, das einzige ist, dass ich es selten mal benutze, um aus tief verschachtelten Schleifen herauszukommen und dann nach vorne! springe.</p>
<p>mfg<br />
blut-lecker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147632</guid><dc:creator><![CDATA[asotbb]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:30:04 GMT]]></title><description><![CDATA[<p>auch mit dem debuggen habe ich eigentlich kein problem.<br />
das problem das es andere lesen und verstehen müssen und es mit goto erschwert wird weis ich, aber niemand will meine projecte sehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
genau bei verschachtelten schleifen verwende ich goto's, aber überspringe manchmal noch code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147634</guid><dc:creator><![CDATA[itwasntpete]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:45:21 GMT]]></title><description><![CDATA[<p>fdgdf schrieb:</p>
<blockquote>
<p>vergiss goto. Das müsste man verbieten. ps: Vile spaß beim debuggen ienes ca 5000 zeilen programms welches 300 gotos beinhaltet.</p>
</blockquote>
<p>Ich würd mal sagen, dass dein Problem dann eher in der falschen Verwendung liegt.</p>
<p>Nee an goto ist nichts schlim, nur am Misbrauch.</p>
<p>Es ist nun einmal so, dass in 99,9% der Fälle es etwas besseres gibt daher ist mein Gebrauch auch sehr eingeschränkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147643</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:45:21 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:46:17 GMT]]></title><description><![CDATA[<p>pi88el schrieb:</p>
<blockquote>
<p>hallo leute,<br />
ich wollte mal fragen ob ihr auch goto's in c/c++ code verwendet.</p>
</blockquote>
<p>Nein</p>
<blockquote>
<p>immer wird gesagt das goto unschön ist und man den befehl vermeiden soll, wegen spagetiprogammierung. da ic haber viel mit assembler mache, habe ich auch in c kein problem damit die übersicht über das poject zu behalten, selbst wenn es viele goto's sind.</p>
</blockquote>
<p>Es ist nicht nur eine Frage des Ueberblicks sondern auch eine Frage des guten Geschmacks, guten Stils, guten Benehmens, ...<br />
Abgesehen davon, dass das Debuggen mit Debugger dich in die Klappsmuehle bringen wuerde, wuerdest du mit Goto's z. B. das Stack-Unwinding bei C++ - Klassen verhindern, und kannst damit sehr leicht ohne es ueberhaupt zu merken Speicherlecks produzieren.</p>
<blockquote>
<p>außerdem gibt es fälle bei denen man um ein goto nicht rumkommt oder wo es mit einem goto schneller und einfacher zu realisieren ist.</p>
</blockquote>
<p>nicht drum rum kommt: das will ich erst mal sehen <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="🙄"
    /><br />
schneller: wohl kaum<br />
einfacher: OMGWTFBBQFTW!</p>
<blockquote>
<p>wie sieht es bei euch aus?? verwendet ihr auch welche, oder versucht ihr es irgendwie zu umgehen?</p>
</blockquote>
<p>Ich verwende nie nie nie nie welche. <em>&quot;Only really bad and really good programmers use goto&quot;</em>. Und mit &quot;Really good&quot; sind nur die absoluten Ober-Gurus gemeint, die ihre eigenen Compiler schreiben und seit 20 Jahren programmieren, und davon bin ich meilenweit und 12 Jahre entfernt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147644</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:46:17 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 20:57:16 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Ich verwende nie nie nie nie welche.</p>
</blockquote>
<pre><code class="language-cpp">for(int i=0; i&lt;10; i++)
  for(int u=0; u&lt;10; u++)
    if(array[i][u] == blabla) goto weiter;
//element nbicht gefunden
weiter:
//element gefunden
</code></pre>
<p>ein kleines und einfaches beispiel. wie realisiert man disen code ohne goto?</p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>&quot;Only really bad and really good programmers use goto&quot;</p>
</blockquote>
<p>einen eigenen compiler bzw. assembler kein compiler schreibe ich auch gerade... :p aber ich würde mich nicht als ein überdurchschnittlichen programmierer einschätzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147649</guid><dc:creator><![CDATA[itwasntpete]]></dc:creator><pubDate>Sun, 01 Oct 2006 20:57:16 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 22:16:57 GMT]]></title><description><![CDATA[<p>pi88el schrieb:</p>
<blockquote>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Ich verwende nie nie nie nie welche.</p>
</blockquote>
<pre><code class="language-cpp">for(int i=0; i&lt;10; i++)
  for(int u=0; u&lt;10; u++)
    if(array[i][u] == blabla) goto weiter;
//element nbicht gefunden
weiter:
//element gefunden
</code></pre>
<p>ein kleines und einfaches beispiel. wie realisiert man disen code ohne goto?</p>
</blockquote>
<p>So:</p>
<pre><code class="language-cpp">inline bool contains(array, blabla)
{
  for(int i=0; i&lt;10; i++)
    for(int u=0; u&lt;10; u++)
      if(array[i][u] == blabla) return true;
  return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1147671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147671</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 01 Oct 2006 22:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Sun, 01 Oct 2006 22:53:00 GMT]]></title><description><![CDATA[<p>Christoph schrieb:</p>
<blockquote>
<pre><code class="language-cpp">inline bool contains(array, blabla)
{
  for(int i=0; i&lt;10; i++)
    for(int u=0; u&lt;10; u++)
      if(array[i][u] == blabla) return true;
  return false;
}
</code></pre>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
ich habe mir schon gedacht das jemand diese art bringen wird. <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="🙂"
    /><br />
jetzt muss man halt abwegen wann was mehr sinn macht. bei sehr vielen verschachtelten schleifen, die immer auf verschiedene array, mit verschidenen diminsionen und größen, nach verschiedenen ausdrücken zu suchen, ist entweder eine sehr variable gehaltene funktion nötig, die aber den ablauf ausbremst oder mehrere solcher funktionen nötig die (in meinen augen) den code zumüllen. da ist doch dan ein kleines goto übersichtlicher als nach einer funktion zu suchen, die vielleicht ganz wo anders liegt, und die dann auch noch zu verstehen wenn sie so allgemein gehalten wird dass sie für einige verschiedene abfrage konzipiert ist.<br />
außerdem ist die inline funktion soweit ich weis etwas begrentzt der compieler fügt nicht immer den code ein, sondern rufft manchmal die funktion ganz normal auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147674</guid><dc:creator><![CDATA[itwasntpete]]></dc:creator><pubDate>Sun, 01 Oct 2006 22:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 00:27:42 GMT]]></title><description><![CDATA[<p>Man unterteilt sowieso eine Methode in mehere Submethoden, das ist immer übersichtlicher.</p>
<p>sehr &quot;übersichtlicher&quot; Code:</p>
<pre><code>c:
for x
{
    for y 
    {
        if blaaa goto a;
    }
}

a:
for x
{
    for y 
    {
        for y 
        {
            if foo goto c; else goto b;
        }
}
b:
</code></pre>
<pre><code>bool xxx = true;
do
{
    if ( blaaa() ) xxx = foo();
} while ( xxx == true );
</code></pre>
<blockquote>
<p>Es ist nun einmal so, dass in 99,9% der Fälle es etwas besseres gibt daher ist mein Gebrauch auch sehr eingeschränkt.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Unterteile deine Methode in Submethoden dann hast du bereits 99,9% der gotos eleminiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147684</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Mon, 02 Oct 2006 00:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 07:37:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">for(int i=0; i&lt;10; i++)
  for(int u=0; u&lt;10; u++)
    if(array[i][u] == blabla) break;
  if(array[i][u] == blabla) break;
</code></pre>
<pre><code class="language-cpp">bool run = 1;
for(int i=0; i&lt;10 &amp;&amp; run; i++)
  for(int u=0; u&lt;10; u++)
    if(array[i][u] == blabla) { run = 0; break; }
</code></pre>
<pre><code class="language-cpp">for(int i=0; (i&lt;10) &amp;&amp; (array[i][u] != blabla); i++)
  for(int u=0; (u&lt;10) &amp;&amp; (array[i][u] != blabla); u++)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1147737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147737</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 02 Oct 2006 07:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 07:58:34 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<blockquote>
<p>wie sieht es bei euch aus?? verwendet ihr auch welche, oder versucht ihr es irgendwie zu umgehen?</p>
</blockquote>
<p>Ich verwende nie nie nie nie welche. <em>&quot;Only really bad and really good programmers use goto&quot;</em>. Und mit &quot;Really good&quot; sind nur die absoluten Ober-Gurus gemeint, die ihre eigenen Compiler schreiben und seit 20 Jahren programmieren, und davon bin ich meilenweit und 12 Jahre entfernt.</p>
</blockquote>
<p>Verstehe ich nicht. Weshalb wird das goto bei Profis denn verzeihbar? Oder ist es bloß die Unantastbarkeit der Gurus, d.h. wenn ein Profi es benutzt MUSS es gut sein? Ein goto ist auch bei Nicht-Gurus allemal besser als wie ein Irrer Hilfszustände einzuführen, eine kleine Funktion in Stücke zu reißen (auch wenn es u.U. nicht logisch ist) oder Exceptions zu mißbrauchen. Anfänger sollten die Finger davon lassen, diese Meinung teile ich.</p>
<p>Ich kann mich aber nur an eine Situation erinnern in der ich ein goto benutzt habe und das ist nachher auch wieder rausgeflogen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147750</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Mon, 02 Oct 2006 07:58:34 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 08:05:00 GMT]]></title><description><![CDATA[<p>gotos sind manchmal schon sinnvoll.<br />
Deswegen das Programm in irgendwelche eh nur einmal aufgerufene Methoden zu unterteilen oder fünf mal irgendeine Variable abzufragen, nur um aus Prinzip kein goto zu machen finde ich sinnfrei, ein goto ist da meist wesentlich einfacher zu überblicken.</p>
<p>Besonders bei verschachtelten Schleifen mit einer Sprungmarke direkt dadrunter ist ein goto sehr leicht zu lesen, alles andere entweder länger und/oder schwerer zu lesen.<br />
Da gibt es nix schlimmes dran, fies wirds nur wenn das goto durchs halbe Programm springt oder man mal zum einen mal zum anderen springt und nicht ganz genau ersichtlich ist wann etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147752</guid><dc:creator><![CDATA[dreaddy]]></dc:creator><pubDate>Mon, 02 Oct 2006 08:05:00 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 08:57:02 GMT]]></title><description><![CDATA[<p>DEvent schrieb:</p>
<blockquote>
<p>Unterteile deine Methode in Submethoden dann hast du bereits 99,9% der gotos eleminiert.</p>
</blockquote>
<p>...und dein programm verbrät 99,9% seiner rechenzeit mit dem code für funktionsaufrufe <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/1147779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147779</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 02 Oct 2006 08:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 09:09:32 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>...und dein programm verbrät 99,9% seiner rechenzeit mit dem code für funktionsaufrufe <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>
</blockquote>
<p>Sehr unwahrscheinlich.</p>
<p>Was hat ein Funktionsaufruf denn - gerade wenn man es zum &quot;Zusammenfalten&quot; von Codefragmenten benutzt - groß an Frame? Stack kurz schieben, evtl. Rückgabewert in Register legen. Abgesehen davon optimiert der Compiler das zum Teil inline, wenn die Funktion nur einmal aufgerufen wird, d.h. er macht intern das, was man lang ausprogrammiert hätte.</p>
<p>Und kein Funktionsaufruf braucht soviel Rechenzeit wie ein Algorithmus, in dem irgendwas passiert. Irgendwas suchen, sortieren, anordnen, da geht die CPU-Zeit hin. Alles andere ist Propaganda, das wirst Du mit jedem Profiler rasch erkennen. Wieviele CPU-Zyklen dauert der Aufbau eines Dialogfensters? Wieviele Zyklen ein Funktionsaufruf?</p>
<p>Abgesehen davon nützt ein schnelles Programm, das nicht funktioniert, da man es nicht überblickt und Fehler nicht findet, nichts. Man sollte zunächst immer erst die Funktion sicherstellen, dann Tunen. Dann weiß man nämlich auch, wo die Zeit steckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147789</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Mon, 02 Oct 2006 09:09:32 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 10:31:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/862">@marcus</a>:<br />
man sieht öfters mal funktionen mit nur einer zeile z.b. in c++ sind ja sehr beliebt diese 'get/set funktionen'. wenn das 'geinlined' wird isses gut. wenn nicht, dann hat so'ne funktion kaum was zu tun und ist grösstenteils mit sich selbst beschäftigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147847</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 02 Oct 2006 10:31:51 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 10:51:26 GMT]]></title><description><![CDATA[<p>In C ist goto manchmal ok.<br />
In C++ ist nie ok.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147856</guid><dc:creator><![CDATA[wisser]]></dc:creator><pubDate>Mon, 02 Oct 2006 10:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 10:58:42 GMT]]></title><description><![CDATA[<p>wisser schrieb:</p>
<blockquote>
<p>In C ist goto manchmal ok.<br />
In C++ ist nie ok.</p>
</blockquote>
<p>Wenn umsichtig und begründet eingesetzt, ist goto auch in C++ in Ordnung.</p>
<p>net schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/862">@marcus</a>:<br />
man sieht öfters mal funktionen mit nur einer zeile z.b. in c++ sind ja sehr beliebt diese 'get/set funktionen'. wenn das 'geinlined' wird isses gut. wenn nicht, dann hat so'ne funktion kaum was zu tun und ist grösstenteils mit sich selbst beschäftigt.</p>
</blockquote>
<p>Man kann sich in der Frage imo durchaus auf die aktuellen C++ Compiler verlassen, ohne in Panik zu verfallen, weil die Funktionsaufrufe vllt. die Performance ruinieren <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/1147867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147867</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Mon, 02 Oct 2006 10:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 11:24:03 GMT]]></title><description><![CDATA[<p>Wenn man schon so weit ist, das man Funktionsaufrufe wegoptimieren will, dann sollte man vielleicht eh Assembler nehmen.</p>
<p>gotos vermeidet man, wie bereits gesagt wurde, dadurch das man Funktionen benutzt. Man schreibt viele kleine Funktionen. Wenn man auf Funktionen stößt, die mehrere hundert Zeilen haben, dann hat man sicher etwas unschönes gemacht.</p>
<p>Außerdem ist</p>
<pre><code class="language-cpp">if(contains(table, value))
  // do sth.
</code></pre>
<p>bei weitem leserlicher, als ein</p>
<pre><code class="language-cpp">for(int i=0; i&lt;10; i++)
  for(int u=0; u&lt;10; u++)
    if(array[i][u] == blabla) goto gefunden;
goto nicht_gefunden;
gefunden:
//do sth.
nicht_gefunden:
</code></pre>
<p>viel leserlicher und leichter zu verstehen.</p>
<p>@pi88el<br />
lass mich raten, du schreibst vermutlich eh kleinere Hobby-Projekte, an denen du alleine arbeitest. Dann wirst du auch nicht so schnell auf die Probleme stoßen, die goto bringt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147890</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 02 Oct 2006 11:24:03 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 11:42:52 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/862">@marcus</a>:<br />
man sieht öfters mal funktionen mit nur einer zeile z.b. in c++ sind ja sehr beliebt diese 'get/set funktionen'. wenn das 'geinlined' wird isses gut. wenn nicht, dann hat so'ne funktion kaum was zu tun und ist grösstenteils mit sich selbst beschäftigt.</p>
</blockquote>
<p>Selbst wenn eine solche Funktion nicht inline expandiert wird, ist sie selten ein Problem, da es ja nicht nur auf die Ausführngszeit einer Funktion sondern ganz extrem auch auf die Häufigkeit des Aufrufs ankommt (Stichwort: 80/20-Regel, die man besser als 90/10-Regel im Kopf behält).<br />
Es ist und bleibt nun mal so, dass sich (Low-Level-)Performance am Besten mit einem Profiler und realisitischen Eingabedaten tunen lässt und der Weg von Funktion -&gt; keine Funktion ist immer leichter als andersherum.</p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Es ist nicht nur eine Frage des Ueberblicks sondern auch eine Frage des guten Geschmacks, guten Stils, guten Benehmens, ...<br />
Abgesehen davon, dass das Debuggen mit Debugger dich in die Klappsmuehle bringen wuerde, wuerdest du mit Goto's z. B. das Stack-Unwinding bei C++ - Klassen verhindern, und kannst damit sehr leicht ohne es ueberhaupt zu merken Speicherlecks produzieren.</p>
</blockquote>
<p>Wie geht das? C++ gotos sind keine longjumps und somit auf eine Funktion beschränkt. Gleichzeitig darfst du auch nicht über Initialisierungen hinweg springen. Was passieren kann ist sowas:</p>
<pre><code class="language-cpp">int func(int x) {
  int* i = new int(22);
  if (x == 0) {
    goto end;
  }
  // ...
  delete i;
end:
  return 42;
}
</code></pre>
<p>Aber das ist kein Problem von goto sondern mangelende Anwendung des RAII-Idioms.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147909</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 02 Oct 2006 11:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 12:11:19 GMT]]></title><description><![CDATA[<p>HumeSikkins schrieb:</p>
<blockquote>
<p>und der Weg von Funktion -&gt; keine Funktion ist immer leichter als andersherum.</p>
</blockquote>
<p>ich glaub' das ist beides gleich schwer/leicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147941</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 02 Oct 2006 12:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 12:19:49 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>und der Weg von Funktion -&gt; keine Funktion ist immer leichter als andersherum.</p>
</blockquote>
<p>ich glaub' das ist beides gleich schwer/leicht...</p>
</blockquote>
<p>Nein, da du ansonsten mehr Code schreiben musst und diesen an mehreren Stellen warten musst. Daher ist die Vorgehensweise besser, das man erst alles in Funktionen packt und sollte man dann wirklich in den äußerst seltenen Fall kommen, das einem selbst ein Funktionsaufruf zu viel ist, dann kann man es eben ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147947</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Mon, 02 Oct 2006 12:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 12:26:37 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Nein, da du ansonsten mehr Code schreiben musst und diesen an mehreren Stellen warten musst. Daher ist die Vorgehensweise besser, das man erst alles in Funktionen packt...</p>
</blockquote>
<p>naja, es gibt sghon ein paar tricks, um den gleichen code an verschiedenen stellen zu benutzen, ohne funktionsaufrufe zu haben (etwa makros, templates, #include &quot;code.c&quot; wo man's braucht)...</p>
<p>aber eigentlich meinte ich das umwandeln von code 'mit funktion' &lt;---&gt; 'ohne funktionen' (wenn man das manuell macht). dürfte beides etwa gleich fummelig sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147952</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Mon, 02 Oct 2006 12:26:37 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 12:58:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3162">@net</a><br />
Es ging mir um die Ergebnisse des Profilers. Die lassen sich umso leichter interpretieren, je modularer der Code ist. Die Entscheidung, ob es sich lohnt eine Funktion zu inlinen lässt sich mit einem Profiler spielend herausfinden. Bei dem umgekehrten Fall, nämlich ist es sinnvoller Code in eine Funktion auszulagern, ist ein Profiler hingegen keine große Hilfe.<br />
Man sollte nicht vergessen, dass inline-Code immer höhere physische Abhängigkeiten hat. Egal ob inline-Funktion, Makro, include. Eine Änderungen an der Implementation und du musst *alle* Aufrufer mindestens neu bauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147984</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 02 Oct 2006 12:58:10 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 13:03:07 GMT]]></title><description><![CDATA[<p>net schrieb:</p>
<blockquote>
<p>naja, es gibt sghon ein paar tricks, um den gleichen code an verschiedenen stellen zu benutzen, ohne funktionsaufrufe zu haben (etwa makros, templates, #include &quot;code.c&quot; wo man's braucht)...</p>
</blockquote>
<p>Die Anwendung würde ich gerne sehen, wo man #include &quot;code.c&quot; braucht und keine Funktion verwenden kann...</p>
<p>[Ein alter C-Compiler für einen 8Bit-Microcontroller zählt in diesem Fall nicht als Beispiel.]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147988</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Mon, 02 Oct 2006 13:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to goto&#x27;s verwenden on Mon, 02 Oct 2006 13:04:00 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>gotos vermeidet man, wie bereits gesagt wurde, dadurch das man Funktionen benutzt. Man schreibt viele kleine Funktionen.</p>
</blockquote>
<p>Tendiert manchmal zu ekligem Code, besonders wenn man Hilfsstrukturen einführen muß um verschiedene Endzustände der Schleife zurückzugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147989</guid><dc:creator><![CDATA[Daniel E.]]></dc:creator><pubDate>Mon, 02 Oct 2006 13:04:00 GMT</pubDate></item></channel></rss>