<?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[Return value einer funktion]]></title><description><![CDATA[<p>hi,<br />
also ich habe frueher mit dev-cpp programmiert und erst seit kurzem habe ich visual c++ 6 mit sp6.<br />
unter dev-cpp war folgender code legal:</p>
<pre><code class="language-cpp">void foo ()  {
  return foo ();
};
</code></pre>
<p>beim vc kommt aber folgende fehlermeldung: error C2562: 'foo' : 'void' function returning a value</p>
<p>mache ich was falsch oder ist das ein fehler des compilers, da ich ja 'void' wiedergebe.<br />
hoffe auf baldige hilfe,<br />
was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/70885/return-value-einer-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 01:55:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/70885.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Apr 2004 00:32:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 00:32:23 GMT]]></title><description><![CDATA[<p>hi,<br />
also ich habe frueher mit dev-cpp programmiert und erst seit kurzem habe ich visual c++ 6 mit sp6.<br />
unter dev-cpp war folgender code legal:</p>
<pre><code class="language-cpp">void foo ()  {
  return foo ();
};
</code></pre>
<p>beim vc kommt aber folgende fehlermeldung: error C2562: 'foo' : 'void' function returning a value</p>
<p>mache ich was falsch oder ist das ein fehler des compilers, da ich ja 'void' wiedergebe.<br />
hoffe auf baldige hilfe,<br />
was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500157</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 00:32:23 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 03:25:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>völlig korrekter Fehler (klingt komisch, ist aber so), eine &quot;void-Funktion&quot; hat nichts zurückzugeben. Selbst wenn man noch argumentieren würde, foo ist doch als void deklariert, so kann void doch nie der &quot;Ausdrucks-Typ&quot; einer return-Anweisung sein (return; ist die einzige Möglichkeit, eine void-Funktion vorzeitig zu verlassen, oder eben gar keine return-Anweisung)</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500173</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 03:25:32 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 12:05:20 GMT]]></title><description><![CDATA[<p>danke fuer deinen beitrag, aber gibt es keine moeglichkeit, diese fehler auszusschalten, oder eine moeglichkeit sie zu umgehen, da viele meiner projekte davon gebrauch gemacht haben und sich jetzt keines mit vc kompilieren laesst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500409</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 12:05:20 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 12:26:23 GMT]]></title><description><![CDATA[<p>edit: hab jetzt auch mal beim stroustrup nachgeschaut und folgendes beispiel gefunden:</p>
<pre><code class="language-cpp">void g( int* p );

void h ( int* p )  { /*...*/ return g ( p ); };  // ok:return of &quot;no value&quot;
</code></pre>
<p>so steht es woertlich. also muesste es doch funktionieren oder irre ich mich?</p>
<p>was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500443</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 12:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 12:30:11 GMT]]></title><description><![CDATA[<p>sorry fuer caps ^^</p>
<p>es kommt drauf an was du machen willst, oh ich sehe gerade du hast ein neues posting:</p>
<pre><code>void g( int* p );
void h ( int* p )  { /*...*/ return g ( p ); };  // ok:return of &quot;no value&quot;
</code></pre>
<p>wenn du das laufen läsasst muesstest du keinen rückgabewert bekommen da du ja die funk. g aufrufst am ende...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500447</guid><dc:creator><![CDATA[T1c4L]]></dc:creator><pubDate>Tue, 13 Apr 2004 12:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 12:36:58 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5327">@t1c4l</a>: genau das ist das problem <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 />
ich kriegs nicht zum laufen, da er meckert, die funktion wuerde einen wert zurueckgeben. ich weiss einfach nicht, was ich machen muss, damit es laeuft, aber nach dem standart muesste es doch gehen, oder?</p>
<p>was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500454</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 12:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 12:52:23 GMT]]></title><description><![CDATA[<p>Nach dem Standard müsste es gehen, aber MSVC++ ist bekanntlich nicht gerade einer der standardkonformsten Compiler ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500466</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 13 Apr 2004 12:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:02:36 GMT]]></title><description><![CDATA[<p>2 fragen:</p>
<p>1. wilst du was überhaupt zurückgeben?<br />
wenn ja post was genau, dann schreib ich dir ne lösung,<br />
wenn nein:<br />
lasss das &quot;return irgendwas&quot; aus.<br />
also:<br />
void DoSeomthing()<br />
{</p>
<p>// do something aber kein return schreiben da du wegen void<br />
// (das nichts) auch nix zurückgibst.<br />
}</p>
<p>2. Hast du ne ahnung warum mein Update auf die DB nicht klappt, lass ich die Where klausel aus wird der erst geändert. das where statement habe ich auch überprüft scheint nix falsches zu sein, ich kann n#mlich auch die spalteninhalte auslesen und die sind korrekt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500476</guid><dc:creator><![CDATA[T1c4L]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:02:36 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:04:51 GMT]]></title><description><![CDATA[<p>da war ich mir zu sicher bei der ersten Antwort...habe gerade im Standard nachgesehen (und wenn Stroustrup das schreibt ist es ein zusätzliches Indiz), es ist dem Standard nach korrekt. Da ich aber ein solches Konstrukt noch nie benötigt habe, bin ich darüber auch nie gestolpert...es bleibt wohl nichts anderes übrig, als z.B. die Deklaration der Funktion zu ändern, und sie einen Typ (dummy-Wert) zurückgeben zu lassen, oder die Funktion anderweitig umzuschreiben.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500479</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:12:12 GMT]]></title><description><![CDATA[<p>Man muss sowas ja nicht machen, z.b. kann man folgenden Code ganz einfach umschreiben:</p>
<pre><code class="language-cpp">void f();
void g() {
  return f();
}

// g umschreiben in:
void g() {
  f();
  return; // kann man hier weglassen, aber manchmal vielleicht auch nicht
}
</code></pre>
<p>Das zurückgeben von void-&quot;Werten&quot; wurde AFAIK wegen Templates in den Standard aufgenommen, so dass eine Funktion vom Typ T grundsätzlich einen Wert vom Typ T zurück geben kann, auch wenn T mit void instantiiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500486</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:12:30 GMT]]></title><description><![CDATA[<p>An alle schrieb:</p>
<blockquote>
<p>Nach dem Standard müsste es gehen, aber MSVC++ ist bekanntlich nicht gerade einer der standardkonformsten Compiler ...</p>
</blockquote>
<p>... und was bringt die Konstruktion? <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="😕"
    /></p>
<p>Da steige ich nicht durch.</p>
<p>Grüße, Berlins letzter Stadthalter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500487</guid><dc:creator><![CDATA[Nachfrager]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:28:39 GMT]]></title><description><![CDATA[<p>ok, bashers loesung funktioniert, damit ist das problem geloest.<br />
haette aber noch eine frage <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="🙄"
    /> und moechte keinen neuen thread eroeffnen.</p>
<pre><code class="language-cpp">void foo ()  {
  for ( int i = i; i &lt; MAX; ++i )  {
    //...
  } // hier endet doch der scope von i?
  for ( int i = i; i &lt; MAX; ++i )  {
    //...
  } // hier sagt er aber i wurde redeklariert
};
</code></pre>
<p>normalerweise endet doch der scope von i schon vorher und deswegen ist es doch keine redeklaration?</p>
<p>p.s.:ich benoetige solche konstrukte z.b. fuer die menus in meinen projekten, wie z.b.:</p>
<pre><code class="language-cpp">//definition vom main menu
void main_menu ()  {
  // bla bla
  // dann kann man natuerlich auswaehlen wies weiter geht  :rolling_eyes:
  // waehlt man, nur als beispiel, punk 1 kommt man zur benutzerverwaltung
  // welche auch mit der selben struktur aufgebaut ist
  if ( choice == ACCOUNT )
    return account_menu (); 
    // account_menu ist als void account_menu () deklariert
  else if ( coice == was_auch_immer )
    return was_auch_immer_menu ();
  // ...
</code></pre>
<p>nur mal so als beispiel.<br />
und noch ne dumme frage <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 />
wenn ich bei meinem projekt release waehle und auf ok druecke ist es gleich wiede die debug version. wie kann ich das einstellen, dass es auch debug bleibt?</p>
<p>was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500507</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:34:10 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Das zurückgeben von void-&quot;Werten&quot; wurde AFAIK wegen Templates in den Standard aufgenommen, so dass eine Funktion vom Typ T grundsätzlich einen Wert vom Typ T zurück geben kann, auch wenn T mit void instantiiert wird.</p>
</blockquote>
<p>ah ja, das war das fehlende Glied in meiner (Gedanken-)Kette bezüglich Notwendigkeit dieses Konstrukts, und VC++/Standard-Konformität im Template-Bereich ist ja dann das passende Stichwort.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500515</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:46:28 GMT]]></title><description><![CDATA[<p>was auch immer schrieb:</p>
<blockquote>
<p>normalerweise endet doch der scope von i schon vorher und deswegen ist es doch keine redeklaration?</p>
</blockquote>
<p>ja, das ist auch eine &quot;Schwäche&quot; im VC++, im Standard ist es ok. Für dieses Problem gibt es allerdings von Microsoft empfohlene work-arounds hier:</p>
<p><a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;167748" rel="nofollow">http://support.microsoft.com/default.aspx?scid=kb;EN-US;167748</a></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500531</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 13:52:26 GMT]]></title><description><![CDATA[<p>hab das mit dem ms link versucht.ich mach ein haeckchen bei Disable Language Extensions und drueck auf ok, aber die einstellungen werden nicht uebernommen, genauso, wenn ich von debug auf retail wechseln will, es passiert nichts.</p>
<p>hoffe jemand weiss, was ich falsch mache,<br />
was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500538</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 13:52:26 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 16:00:37 GMT]]></title><description><![CDATA[<p>2 kleine fragen meinerseits, vielleicht denke ich grad auch nicht so gerade aus und versteh irgend etwas offensichtliches nicht.</p>
<p>zur for-schleife:</p>
<p>wieso benutzt man dann nicht einfach das i aus der ersten schleife, den richtigen startwert muss man natürlich eintragen.</p>
<p>zur rückgabe von void:</p>
<p>also wenn der code gaaaanz am anfang dieses artikels wirklich eine rekursive funktion darstellt, vielleicht mag vc++ es deswegen nicht?</p>
<p>mfg floh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500671</guid><dc:creator><![CDATA[Floh]]></dc:creator><pubDate>Tue, 13 Apr 2004 16:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 19:17:46 GMT]]></title><description><![CDATA[<p>Floh schrieb:</p>
<blockquote>
<p>zur for-schleife:</p>
<p>wieso benutzt man dann nicht einfach das i aus der ersten schleife, den richtigen startwert muss man natürlich eintragen.</p>
</blockquote>
<p>kann man natürlich, aber wenn man viel Code hat, in dem man &quot;standardgemäß&quot; programmiert hat, müßte man evtl. sehr viel ändern, da ist ein einfacher workaround wie dieser natürlich immer willkommen.</p>
<p>Floh schrieb:</p>
<blockquote>
<p>zur rückgabe von void:</p>
<p>also wenn der code gaaaanz am anfang dieses artikels wirklich eine rekursive funktion darstellt, vielleicht mag vc++ es deswegen nicht?</p>
</blockquote>
<p>VC++ akzeptiert keine Art von Rückgabe eines void-Ausdrucks über return in einer void-Funktion, die Rekursion hat hier nur zufällig das Problem deutlich gemacht.</p>
<p>@was auch immer:</p>
<p>dann stimmt irgendetwas mit deiner Konfiguration nicht. Vor allen Dingen sollte der Wechsel von Debug- auf Release-Konfiguration funktionieren. Wird denn wenigstens sichtbar der Modus gewechselt (ist also im Ausgabe-Fenster &quot;Konfiguration Projektname - Release&quot; zu sehen als erste Zeile?)? Was meinst du, daß bei dir dann &quot;nichts passiert&quot;?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500799</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 19:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 20:28:14 GMT]]></title><description><![CDATA[<blockquote>
<p>ist also im Ausgabe-Fenster &quot;Konfiguration Projektname - Release&quot; zu sehen als erste Zeile?</p>
</blockquote>
<p>eben nein.dort steht immer noch debug, aber vieleicht mach ich das falsch.ich mach es naemlich folgendermassen:<br />
workspace -&gt; projektname files -&gt; rechtsklick -&gt; settings -&gt; win32 debug auf win32 release umstellen</p>
<p>was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500843</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 20:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 20:43:02 GMT]]></title><description><![CDATA[<p>..hmmm...also ich gehe meistens über &quot;Erstellen&quot;-&gt;&quot;Aktive Konfiguration festlegen&quot;, &quot;Projektname-Win32 Release&quot; selektieren, OK klicken, kompilieren...</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500853</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 13 Apr 2004 20:43:02 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Tue, 13 Apr 2004 22:19:01 GMT]]></title><description><![CDATA[<p>Probe-Nutzer schrieb:</p>
<blockquote>
<p>..hmmm...also ich gehe meistens über &quot;Erstellen&quot;-&gt;&quot;Aktive Konfiguration festlegen&quot;, &quot;Projektname-Win32 Release&quot; selektieren, OK klicken, kompilieren...</p>
<p>MfG</p>
</blockquote>
<p>das wars. ich hab immer rechtsklick auf projekt und dort unter einstellungen versucht was zu aendern <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="🙄"
    /></p>
<p>danke fuer eure hilfe,</p>
<p>was auch immer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/500937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/500937</guid><dc:creator><![CDATA[was auch immer]]></dc:creator><pubDate>Tue, 13 Apr 2004 22:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Return value einer funktion on Wed, 14 Apr 2004 05:13:16 GMT]]></title><description><![CDATA[<p>Dann defiiere dein for neu. Ist dort auch beschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/501008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/501008</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Wed, 14 Apr 2004 05:13:16 GMT</pubDate></item></channel></rss>