<?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[&amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved)]]></title><description><![CDATA[<p>Huhu,<br />
ich mal wieder.</p>
<p>Ich erhalte die im Titel angegebene Fehlermeldung bei meinem Programm, hier der Kode:</p>
<pre><code class="language-cpp">//Programmlisting: ka2_uebung.cpp, erstellt von 

//Einbinden der Headerdateien
#include &lt;iostream&gt;
#include &lt;process.h&gt;
#include &lt;time.h&gt;

//Namensraum festlegen
using namespace std;

int ergebnis, zahl1, zahl2, addition(int), x, y;

//Beginn der Hauptfunktion
int main(void)
{

system(&quot;cls&quot;);
system(&quot;title KA Übungsprogramm Zinsberechnung&quot;);

cout &lt;&lt; &quot;Bitte Zahl1 eingeben: &quot;;
cin &gt;&gt; zahl1;
cout &lt;&lt; &quot;\n Bitte Zahl2 eingeben: &quot;;
cin &gt;&gt; zahl2;

cout &lt;&lt; &quot;Das Ergebnis ist &quot; &lt;&lt; addition(zahl1, zahl2);

system(&quot;pause&quot;);
//Rückgabewert Success
return EXIT_SUCCESS;
}//Main
int addition(int x, int y)
{
//ergebnis = x + y;
return (x + y);
}//Addition
</code></pre>
<p>Vermutlich irgendetwas sehr einfaches, vergessenes Zeichen, Definition oder ähnliches....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255986/quot-funktion-akzeptiert-keine-2-argumente-quot-solved</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 18:09:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255986.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Dec 2009 17:56:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Tue, 14 Sep 2021 19:05:19 GMT]]></title><description><![CDATA[<p>Huhu,<br />
ich mal wieder.</p>
<p>Ich erhalte die im Titel angegebene Fehlermeldung bei meinem Programm, hier der Kode:</p>
<pre><code class="language-cpp">//Programmlisting: ka2_uebung.cpp, erstellt von 

//Einbinden der Headerdateien
#include &lt;iostream&gt;
#include &lt;process.h&gt;
#include &lt;time.h&gt;

//Namensraum festlegen
using namespace std;

int ergebnis, zahl1, zahl2, addition(int), x, y;

//Beginn der Hauptfunktion
int main(void)
{

system(&quot;cls&quot;);
system(&quot;title KA Übungsprogramm Zinsberechnung&quot;);

cout &lt;&lt; &quot;Bitte Zahl1 eingeben: &quot;;
cin &gt;&gt; zahl1;
cout &lt;&lt; &quot;\n Bitte Zahl2 eingeben: &quot;;
cin &gt;&gt; zahl2;

cout &lt;&lt; &quot;Das Ergebnis ist &quot; &lt;&lt; addition(zahl1, zahl2);

system(&quot;pause&quot;);
//Rückgabewert Success
return EXIT_SUCCESS;
}//Main
int addition(int x, int y)
{
//ergebnis = x + y;
return (x + y);
}//Addition
</code></pre>
<p>Vermutlich irgendetwas sehr einfaches, vergessenes Zeichen, Definition oder ähnliches....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818729</guid><dc:creator><![CDATA[Basinator]]></dc:creator><pubDate>Tue, 14 Sep 2021 19:05:19 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 18:02:20 GMT]]></title><description><![CDATA[<p>überprüf mal Zeile 11 genau</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818734</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Sun, 06 Dec 2009 18:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 18:02:46 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; addition(int), x, y;</p>
</blockquote>
<p>Du deklarierst hier eine Funktion, die ein int erwartet und definierst daneben x und y. Das ist bestimmt nicht das, was du willst.</p>
<p>Übrigens, deine Kommentare im Code sind ausnahmslos sinnlos.<br />
:xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818735</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 06 Dec 2009 18:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Mon, 16 Aug 2010 19:54:12 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>dein Prototyp passt mit der Defintion nicht zusammen:</p>
<pre><code class="language-cpp">int addition ( int, int ) ;
</code></pre>
<p>Du hast aber:</p>
<pre><code class="language-cpp">int addition ( int ) ;
</code></pre>
<p>geschrieben.</p>
<p>Außerdem: Gewöhn dir einen schönen Stil an: Schreib deine Prototypen immer in einer eigenen Zeile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818736</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Aug 2010 19:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 18:07:51 GMT]]></title><description><![CDATA[<p>ist das addition(int) in der Zeile 11 nicht einfach überflüssig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818740</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Sun, 06 Dec 2009 18:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Mon, 16 Aug 2010 19:54:27 GMT]]></title><description><![CDATA[<p>Kasimir87 schrieb:</p>
<blockquote>
<p>ist das addition(int) in der Zeile 11 nicht einfach überflüssig?</p>
</blockquote>
<p>Ne, wenn man die Definition nach 'main' schreibt muss man mind. einen Prototypen angeben, damit das Hauptprogramm weiß, dass es so eine Funktion überhaupt gibt.</p>
<p>Er könnte sich den Prototypen sparen, wenn er die Definition vor 'main' schreibt --&gt; ABER! --&gt; Schlechter Stil.</p>
<p>Hoffe habe dich nicht falsch verstanden. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818741</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Aug 2010 19:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 18:15:26 GMT]]></title><description><![CDATA[<p>Nein. Der Compiler arbeitet z.T. kontextsensitiv, d.h., er sucht das Wort/Symbol &quot;addition&quot;, was aber erst unter dem ersten Auftreten definiert wird. Woher soll er also beim Aufruf wissen, was das ist? Oder aber, angenommen, die Funktion wird vor der main() definiert. Was wäre, wenn die Funktion einfach nie aufgerufen werden würde? Der Code würde vom Compiler (mal abgesehen von Optimierung) trotzdem erzeugt werden, obwohl er nicht benutzt wird. Deshalb wird zwischen Definition und Deklaration getrennt, es gibt aber auch viele andere Gründe, z.B. Schnittstellen und Modularität. :xmas1:</p>
<p>Siehe u.a.: &quot;Die C++ Programmiersprache, Kapitel 9 Quelldateien und Programme&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818743</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 06 Dec 2009 18:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Mon, 16 Aug 2010 19:54:44 GMT]]></title><description><![CDATA[<p>Huch Ad aCTa,</p>
<p>das wusste ich jetzt nicht! <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 />
Sollte mir das Kapitel nochmal durchlesen, danke für die Erklärung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818745</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Aug 2010 19:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 19:09:40 GMT]]></title><description><![CDATA[<p>Jo, das war der Grund, ist gelöst, vielen Dank!</p>
<blockquote>
<p>Übrigens, deine Kommentare im Code sind ausnahmslos sinnlos.</p>
</blockquote>
<p>Liegt am Tutor - Schon in der letzten KA mussten wir alles totkommentieren. Dann kann ich das jetzt auch schon für die Vorbereitung auf die morgige Arbeit tun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818776</guid><dc:creator><![CDATA[Basinator]]></dc:creator><pubDate>Sun, 06 Dec 2009 19:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Tue, 17 Aug 2010 19:48:34 GMT]]></title><description><![CDATA[<p>Sunny31 schrieb:</p>
<blockquote>
<p>Kasimir87 schrieb:</p>
<blockquote>
<p>ist das addition(int) in der Zeile 11 nicht einfach überflüssig?</p>
</blockquote>
<p>Ne, wenn man die Definition nach 'main' schreibt muss man mind. einen Prototypen angeben, damit das Hauptprogramm weiß, dass es so eine Funktion überhaupt gibt.</p>
<p>Er könnte sich den Prototypen sparen, wenn er die Definition vor 'main' schreibt --&gt; ABER! --&gt; Schlechter Stil.</p>
<p>Hoffe habe dich nicht falsch verstanden. :xmas1:</p>
</blockquote>
<p>ah gut. also das mans nicht braucht wenn man die definition davor schreibt wusste ich nur halb. ich ging davon aus, dass ein prototyp in dem falle einfach unnötig ist. und wusste nicht, dass es einen unterschied macht ob ich vor oder nach main die definition schreibe. und ich wusste nicht, dass es schlechter stil ist wenn man die definition davor schreibt. warum ist denn das so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818803</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Tue, 17 Aug 2010 19:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 20:27:16 GMT]]></title><description><![CDATA[<p>In Minimalbeispielen (ließ &quot;in einer einzigen Datei/Übersetzungseinheit&quot;) wäre die Begründung nie so richtig offensichtlich. <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 />
Du zerdommernst dir entweder die Modularität oder erzeugst große Kompilierungsabhängigkeiten. Merk' dir einfach:<br />
Forward-Deklarationen von Klassen und Deklarationen von Funktionen in eine Headerdatei</p>
<p>Definitionen von Klassen und Deklarationen von Funktionen in eine Headerdatei</p>
<p>Definitionen von Klassenmembern bzw. Definitionen von Funktionen in eine Quellcodedatei</p>
<p>Wenn du die Funktionsdefinitionen auf Gedeih und verderb davor (also in eine Headerdatei) und nicht dahinter (in eine andere Kompilier-Einheit) stellst, wird der Linker sie immer mit in den Binärcode der ausführbaren Datei schreiben, egal ob du sie benutzt oder nicht. Wenn du hingegen nur die Schnittstelle ( = Deklaration) zur Verfügung stellst, wird er Compiler den Code in der Übersetzungseinheit akzeptieren und der Linker wird den benötigten Objektcode dann nach dem Kompilieren hinzufügen, ganz im C++-Sinn: &quot;You only pay for what you use.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818806</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 06 Dec 2009 20:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 21:13:40 GMT]]></title><description><![CDATA[<p>wie stell ich denn etwas in eine andere Kompilier-Einheit?<br />
Ich kenn das nur mit header-dateien O.o</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818824</guid><dc:creator><![CDATA[Kasimir87]]></dc:creator><pubDate>Sun, 06 Dec 2009 21:13:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sat, 13 Nov 2010 16:45:44 GMT]]></title><description><![CDATA[<p>sunny31 schrieb:</p>
<blockquote>
<p>Er könnte sich den Prototypen sparen, wenn er die Definition vor 'main' schreibt --&gt; ABER! --&gt; Schlechter Stil.</p>
</blockquote>
<p>Naja, das ist Geschmackssache. Bei grösseren Projekten ist es wohl eher schlechter Stil, in Main.cpp überhaupt etwas anderes als <code>main()</code> und <code>#include</code> -Direktiven zu haben.</p>
<p>Ad aCTa schrieb:</p>
<blockquote>
<p>Wenn du die Funktionsdefinitionen auf Gedeih und verderb davor (also in eine Headerdatei) und nicht dahinter (in eine andere Kompilier-Einheit) stellst, wird der Linker sie immer mit in den Binärcode der ausführbaren Datei schreiben, egal ob du sie benutzt oder nicht.</p>
</blockquote>
<p>So sicher wäre ich mir da nicht, da müsste ja die halbe Standardbibliothek ständig mitgelinkt werden. Moderne Compiler wie der von MSVC++ sind sogar fähig, beim Linken noch über Inline-Optimierungen zu entscheiden, dann können sie wohl auch unnötige Symbole weglassen.</p>
<p>Kasimir87 schrieb:</p>
<blockquote>
<p>wie stell ich denn etwas in eine andere Kompilier-Einheit?<br />
Ich kenn das nur mit header-dateien O.o</p>
</blockquote>
<p>So:</p>
<pre><code class="language-cpp">// Foo.hpp - Schnittstelle mit Deklaration
void Foo();

// Foo.cpp - Implementierung mit Definition
#include &quot;Foo.hpp&quot;
void Foo()
{
    // ...
}

// Main.cpp - Benutzung von Foo()
#include &quot;Foo.hpp&quot;
int main()
{
    Foo();
}
</code></pre>
<p>Unter dem Kapitel &quot;Modulare Programmierung&quot; deines C++-Buchs nachzuschlagen. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818835</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 13 Nov 2010 16:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 21:49:56 GMT]]></title><description><![CDATA[<blockquote>
<p>So sicher wäre ich mir da nicht, da müsste ja die halbe Standardbibliothek ständig mitgelinkt werden.</p>
</blockquote>
<p>Wieso? Ich schätze, fast alles in der Standardbibliothek sind Templates. Wenn man sie nicht benutzt, werden die doch gar nicht erst kompiliert, geschweige denn gelinkt. :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818839</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 06 Dec 2009 21:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Funktion akzeptiert keine 2 Argumente&amp;quot; (Solved) on Sun, 06 Dec 2009 22:37:37 GMT]]></title><description><![CDATA[<p>Ad aCTa schrieb:</p>
<blockquote>
<p>Wieso? Ich schätze, fast alles in der Standardbibliothek sind Templates.</p>
</blockquote>
<p>Naja, die gesamte C-Bibliothek schon mal nicht (aber ok, da sind wohl mehr Deklarationen).</p>
<p>Trotzdem liegst du falsch. Weil du mir nicht glauben wirst, habe ich ein Programm geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;list&gt;
#include &lt;algorithm&gt;

#include &lt;boost/preprocessor/repetition/repeat.hpp&gt;

#define DEFINE_USELESS_FUNC(Z, N, IDENTIFIER)    \
void IDENTIFIER ## N(int a, double d, bool b)    \
{                                                \
    long l = a*d - b;                            \
    std::vector&lt;int&gt; v(100, l);                  \
    v[99] = d;                                   \
    std::sort(v.begin(), v.end());               \
    std::random_shuffle(v.begin(), v.end());     \
    std::cout &lt;&lt; v[99] &lt;&lt; v[rand() % 100];       \
    std::list&lt;int&gt; w(v.begin(), v.end());        \
    w.sort();                                    \
    std::cout &lt;&lt; w.back() &lt;&lt; std::endl;          \
}

#define CALL_USELESS_FUNC(Z, N, IDENTIFIER)      \
IDENTIFIER ## N(N, 3.1415, false);

// ========== Eigentlicher Code ab hier ==========
//#define USE_USELESS_FUNC

BOOST_PP_REPEAT(150, DEFINE_USELESS_FUNC, useless)

int main()
{
    #ifdef USE_USELESS_FUNC
    BOOST_PP_REPEAT(150, CALL_USELESS_FUNC, useless)
    #endif
}
</code></pre>
<p>Die Präprozessormetaprogrammierung ist nur zum Definieren mehrerer Funktionen, sodass man den Unterschied gut sieht.</p>
<p>So ist die <code>.exe</code> -Datei 7kB gross. Definiere ich <code>USE_USELESS_FUNC</code> , erhöht sich die Grösse auf 127kB. Also irgendwas an deiner Theorie kann nicht ganz stimmen. Kompiliert wurde übrigens auf MSVC++ 2008 im Release-Modus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1818850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1818850</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 06 Dec 2009 22:37:37 GMT</pubDate></item></channel></rss>