<?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[rekursive Funktionen Generell]]></title><description><![CDATA[<p>Hallo,</p>
<p>Pseudo-Code einer rekursiven Funktion <em>fu()</em>:</p>
<pre><code>fu(){
// Anfang der Folge
   if(...){
   ...   
}

// Rekursionsformel
   fu()...
} // Ende der Definition von fu()
</code></pre>
<p>Folgende Frage habe ich dazu:<br />
Wie kann sich eine Funktion selbst aufrufen? Wenn sich die Funktion <em>fu()</em> aufruft (im Abschnitt der Rekursionformel), dann ist <em>fu()</em> ja noch gar nicht fertig deklariert, d.h. der Compiler weiss gar nicht was <em>fu()</em> bedeutet.</p>
<p>Folgendes habe ich mir zusammengegoogelt:<br />
Die Funktionen sind in einem speziellen Ort abgespeichtert, dem Programmspeicher. Darum sind alle Funktionen immer definiert.</p>
<p>Ist dies so richtig?</p>
<p>Danke für alle Antworten<br />
Istvan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316782/rekursive-funktionen-generell</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 17:16:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316782.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 May 2013 12:42:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rekursive Funktionen Generell on Thu, 16 May 2013 12:42:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Pseudo-Code einer rekursiven Funktion <em>fu()</em>:</p>
<pre><code>fu(){
// Anfang der Folge
   if(...){
   ...   
}

// Rekursionsformel
   fu()...
} // Ende der Definition von fu()
</code></pre>
<p>Folgende Frage habe ich dazu:<br />
Wie kann sich eine Funktion selbst aufrufen? Wenn sich die Funktion <em>fu()</em> aufruft (im Abschnitt der Rekursionformel), dann ist <em>fu()</em> ja noch gar nicht fertig deklariert, d.h. der Compiler weiss gar nicht was <em>fu()</em> bedeutet.</p>
<p>Folgendes habe ich mir zusammengegoogelt:<br />
Die Funktionen sind in einem speziellen Ort abgespeichtert, dem Programmspeicher. Darum sind alle Funktionen immer definiert.</p>
<p>Ist dies so richtig?</p>
<p>Danke für alle Antworten<br />
Istvan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323741</guid><dc:creator><![CDATA[Istvan]]></dc:creator><pubDate>Thu, 16 May 2013 12:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Funktionen Generell on Thu, 16 May 2013 12:48:39 GMT]]></title><description><![CDATA[<p>Istvan schrieb:</p>
<blockquote>
<p>Folgendes habe ich mir zusammengegoogelt:<br />
Die Funktionen sind in einem speziellen Ort abgespeichtert, dem Programmspeicher. Darum sind alle Funktionen immer definiert.</p>
</blockquote>
<p>Jo, zur Laufzeit eh. Da sind alle fertig.</p>
<p>Istvan schrieb:</p>
<blockquote>
<p>Wie kann sich eine Funktion selbst aufrufen? Wenn sich die Funktion <em>fu()</em> aufruft (im Abschnitt der Rekursionformel), dann ist <em>fu()</em> ja noch gar nicht fertig deklariert, d.h. der Compiler weiss gar nicht was <em>fu()</em> bedeutet.</p>
</blockquote>
<p>Das wäre die Frage, wie er es compilieren kann. Es geht auch. Er weiß schon, daß es eine Funkltion fu gibt, denn er hat den Funktionskopf schon gelesen und angefangen, die Funktion zu schreiben. Er muss für das Generieren des Codes für den Aufruf nicht wissen, was in fu drinsteht, sondern nur, wo fu im Speicher stehen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323744</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 16 May 2013 12:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Funktionen Generell on Thu, 16 May 2013 12:50:04 GMT]]></title><description><![CDATA[<p>Istvan schrieb:</p>
<blockquote>
<p>d.h. der Compiler weiss gar nicht was <em>fu()</em> bedeutet.</p>
</blockquote>
<p>Was fu() genau bedeutet, ist dem Compiler egal. Er &quot;akzeptiert&quot; einen Funktionsaufruf, wenn er weiß, dass es irgendwo eine Funktion mit diesem Namen gibt. Dabei würde ihm eine Deklaration bereits genügen.</p>
<p>Der tatsächliche Aufruf findet erst zur Laufzeit statt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323745</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 16 May 2013 12:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to rekursive Funktionen Generell on Thu, 16 May 2013 12:53:51 GMT]]></title><description><![CDATA[<p><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="😕"
    /> Eine Funktion kannst du nicht aufrufen, wenn sie nicht deklariert ist. Deklarieren bedeutet ja einfach nur <code>bekannt machen</code> . Und das ist in deinem Beispiel doch der Fall, du schreibst doch <code>fu()</code> . Vergiss nicht, dass für die Bekanntmachung nur der Funktionskopf ausschlaggebend ist, der Funktionsrumpf interessiert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323746</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 16 May 2013 12:53:51 GMT</pubDate></item></channel></rss>