<?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[Verlinken mit C++]]></title><description><![CDATA[<pre><code class="language-cpp">int main() {
    http://www.google.de
    goto http;
    return 0;
}
</code></pre>
<p>Warum geht das Programm bei mir nicht, aber hier?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190433/verlinken-mit-c</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 17:01:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190433.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Aug 2007 15:46:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 10:35:52 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main() {
    http://www.google.de
    goto http;
    return 0;
}
</code></pre>
<p>Warum geht das Programm bei mir nicht, aber hier?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349891</guid><dc:creator><![CDATA[foren coder]]></dc:creator><pubDate>Thu, 23 Aug 2007 10:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 10:35:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main() {
    http: ShellExecute(0, &quot;Open&quot;, &quot;www.google.de&quot;, 0, 0, 1);
    goto http;
    return 0;
}
</code></pre>
<p>Probier doch das mal aus? <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/1349895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349895</guid><dc:creator><![CDATA[martin_salo]]></dc:creator><pubDate>Thu, 23 Aug 2007 10:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 10:14:11 GMT]]></title><description><![CDATA[<p>foren coder schrieb:</p>
<blockquote>
<p>[...]<br />
Warum geht das Programm bei mir nicht, aber hier?</p>
</blockquote>
<p>Weil das goto in C/C++ nichts mit Internetseiten zu tun hat.</p>
<p>Wie man eine Internetseite mit C++ öffnen kann hat martin_salo schon geschrieben. Ich würde aber das goto ganz wegnehmen:</p>
<pre><code class="language-cpp">int main() 
{
    ShellExecute(0, &quot;Open&quot;, &quot;&lt;Interneadresse&gt;&quot;, 0, 0, 1);
    return 0;
}
</code></pre>
<p>Unabhängig davon ist goto etwas was man nur benutzen sollte wenn es <strong>wirklich nicht anders geht</strong>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350311</guid><dc:creator><![CDATA[Beliah]]></dc:creator><pubDate>Thu, 23 Aug 2007 10:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 10:33:58 GMT]]></title><description><![CDATA[<p>foren coder schrieb:</p>
<blockquote>
<p>[<a href="http://url=www.google.de" rel="nofollow">url=www.google.de</a>]</p>
<pre><code class="language-cpp">int main() {
    http://www.google.de
    goto http;
    return 0;
}
</code></pre>
<p>[/url]<br />
Warum geht das Programm bei mir nicht, aber hier?</p>
</blockquote>
<p>Was heißt hier geht nicht? Sollte doch ne schöne endlosschleife ergeben oder? <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>
<p>Beliah schrieb:</p>
<blockquote>
<p>Unabhängig davon ist goto etwas was man nur benutzen sollte wenn es wirklich nicht anders geht.</p>
</blockquote>
<p>Da bin ich nicht deiner Meinung. Hier ist es Natürlich nicht sehr Sinnvoll eingesetzt, aber ich halte es nicht für gut, wenn man nur wegen eines Trends oder &quot;Weil mans halt nicht macht&quot; auf ein vollkommen legitimes Sprachmittel verzichtet.<br />
Klar kann man mit goto so manche Programme komplett unlesbar machen. Aber in manchen Fällen ist goto nicht nur erlaubt sondern schlicht und einfach eleganter als alle anderen Lösungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350320</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Thu, 23 Aug 2007 10:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 10:51:16 GMT]]></title><description><![CDATA[<p>Beliah schrieb:</p>
<blockquote>
<p>Unabhängig davon ist goto etwas was man nur benutzen sollte wenn es <strong>wirklich nicht anders geht</strong>.</p>
</blockquote>
<p>Und es geht so ziemlich immer anders <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>
<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Aber in manchen Fällen ist goto nicht nur erlaubt sondern schlicht und einfach eleganter als alle anderen Lösungen.</p>
</blockquote>
<p>Goto ist nie elegant. Ein goto ueber kleine Bereiche ist unnoetig und anders loesbar, und ein goto ueber groessere Bereiche hinweg bricht die Programmstruktur auf. Und wenn die Programmstruktur bricht, dann bricht der Programmierer der den Mist warten muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350328</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 23 Aug 2007 10:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Thu, 23 Aug 2007 11:14:09 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Goto ist nie elegant. Ein goto ueber kleine Bereiche ist unnoetig und anders loesbar, und ein goto ueber groessere Bereiche hinweg bricht die Programmstruktur auf. Und wenn die Programmstruktur bricht, dann bricht der Programmierer der den Mist warten muss.</p>
</blockquote>
<p>goto soll man nicht in oo c++ benutzen .<br />
in c geht in vielen faelen mit goto eleganter ( z.B.linux kernel sources)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350350</guid><dc:creator><![CDATA[kitov]]></dc:creator><pubDate>Thu, 23 Aug 2007 11:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Fri, 24 Aug 2007 06:58:18 GMT]]></title><description><![CDATA[<p>zeig mal jemand ein beispiel, wo goto eleganter ist als bspw. ne schleife!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350877</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 24 Aug 2007 06:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Fri, 24 Aug 2007 07:17:11 GMT]]></title><description><![CDATA[<p>verschachtelte Schleifen <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="😉"
    /> (das ist so ziemlich die einzige Situation, wo ich ein goto zweckmäßig einsetzen würde)</p>
<pre><code class="language-cpp">while(bed1)
{
  ...
  while(bed2)
  {
    ...
    if(fataler_fehler()) goto full_break;
    ...
  }
  ...
}
full_break:

//vs

while(bed1)
{
  bool fatal=false;
  ...
  while(bed2)
  {
    ...
    if(fataler_fehler())
    {
      fatal=true;
      break;
    }
    ...
  }
  if(fatal)break;
  ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1350889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350889</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 24 Aug 2007 07:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Fri, 24 Aug 2007 07:19:37 GMT]]></title><description><![CDATA[<p>Standardbeispiel:</p>
<pre><code class="language-cpp">dev = open(device);
if (dev != NULL) {
  if (check1) {
    if (check2) {
      if (check3) {
        aktion;
      } else return CHECK3FAILED;
    } else return CHECK2FAILED;
  } else return CHECK1FAILED;
  close(dev);
} else return OPENFAILED;
</code></pre>
<p>In C gibt es keine Destruktoren, damit ist es u.U. notwendig nach jeder Aktion einen Punkt zum Aufräumen hinzuzufügen. Es gibt auch keine Exceptions, damit muss jeder Fehlerfall an Ort und Stelle behandelt werden. Manche nutzen dafür Bäume wie oben, andere goto:</p>
<pre><code class="language-cpp">ret = 0;
dev = open(device);
if (dev == NULL) {
   ret = OPENFAILED;
   goto ende;
}

if (!check1) {
   ret = CHECK1FAILED;
   goto close_und_ende;
}
...

close_und_ende:
   close(dev);
ende:
   return ret;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1350891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350891</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 24 Aug 2007 07:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Verlinken mit C++ on Fri, 24 Aug 2007 07:26:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13742">@BorisDieKlinge</a> als eine schleife? ich denke, den fall gibt es nicht.</p>
<p>es kann aber durchaus sinnvoll sein, gotos zu benutzen. allerdings beschränkt es sich im großen und ganz auf zwei fallkategorien. zum einen können sie erhebliche probleme im bereich der code-generierung vermeiden (siehe lex, flex, bison und co. nicht nur deren c-varianten sondern auch die c++-varianten) und zum anderen kann man sie sinnvoll nutzen, wenn man nur einen sehr kleinen stack hat, wie es im bereich der mikrokontroler vorkommt.</p>
<p>allerdings ist es hier auch zu beachten, was pumuckl geschrieben hat: die templates von code-generatoren zu verstehen oder gar warten zu können, ist wirklich harte arbeit. bei den mikrokontrollern ist es ähnlich, allerdings bleibt da normalerweise die codegröße in einem in sinnvoller zeit verstehbaren rahmen. (also zumindest bei solchen controllern, bei denen man auf menge an calls achten muss. <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>
<p>als dritter bereich kommt dann noch die performance-steigerung hinzu. allerdings ist hier der effekt nicht sonderlich groß, da call+ret(f) nur unwesentlich &quot;teurer&quot; ist als zwei jmp. in dem bereich sollte man aus meiner sicht, in den meisten fällen die fingen davon lassen.</p>
<p>p.s. du wolltest noch ein bsp, oder? schau dir mal das resultat eines bison oder yacc durchlaufes an. schau aber besser nicht zu genau hin. <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> an der stelle würde ich exceptions werfen.<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a> das stimmt. in c braucht man sie wesentlich häufiger, wenn man hübschen code schreiben will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350895</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Fri, 24 Aug 2007 07:26:59 GMT</pubDate></item></channel></rss>