<?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[inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe?]]></title><description><![CDATA[<p>n/t</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213846/inline-wirklich-100-genauso-schnell-wie-wenn-ich-den-funktionstext-nochmal-reinschreibe</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 00:08:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213846.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 May 2008 17:38:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 17:38:50 GMT]]></title><description><![CDATA[<p>n/t</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514483</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 17:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 17:41:02 GMT]]></title><description><![CDATA[<p>traust du dem compiler etwa nicht zu, zu einfachen textersetzungen fähig zu sein?</p>
<p>btw. soll es hier um inlining gehen (worüber du nicht wirklich kontrolle hast), oder um das schlüsselwort <code>inline</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514486</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 22 May 2008 17:41:02 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 17:51:03 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>traust du dem compiler etwa nicht zu, zu einfachen textersetzungen fähig zu sein?</p>
<p>btw. soll es hier um inlining gehen (worüber du nicht wirklich kontrolle hast), oder um das schlüsselwort <code>inline</code> ?</p>
</blockquote>
<p>Ich frage mich halt, ich hab wirklich teilweise überladene funktionen mit mehreren hundert zeilen (große switch anweisungen), und die will ich z.b. in ne inline funktion auslagern und dann in eine eigens dafür angelegte .h Datei speichern. Dabei geht es ja ausschließlich um Übersichtlichkeit, wenn das einen Geschwindigkeitsverlust zur Folge hat, lass ich es lieber in einer Datei <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/1514498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514498</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 17:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 17:52:56 GMT]]></title><description><![CDATA[<p>Der Compiler muss inline nicht befolgen. Und sehr wahrscheinlich optimierst du an der falschen stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514501</guid><dc:creator><![CDATA[blalabald]]></dc:creator><pubDate>Thu, 22 May 2008 17:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 17:56:54 GMT]]></title><description><![CDATA[<p>blalabald schrieb:</p>
<blockquote>
<p>Der Compiler muss inline nicht befolgen. Und sehr wahrscheinlich optimierst du an der falschen stelle.</p>
</blockquote>
<p>Es geht ja gar nicht um Optimierung, da der Quelltext jetzt so in einer Funktion steht, aber halt eine relativ große. Und die möchte ich in 3 inline Funktionen aufteilen, die Frage ist nur, ob das dann wirklich 100% genauso schnell ist..</p>
<p>also stellt euch das so vor:</p>
<pre><code>function a()
{
  switch(xyz)
  {
    case 123:
    break;
    case 2342:
    break;
  }
}
</code></pre>
<p>Soll dann praktisch werden zu:</p>
<pre><code>function a()
{
  xyzSwitcher(xyz);
}

#include &quot;xyzSwitcher.h&quot;

----
xyzSwitcher.h

inline function xyzSwitcher(int xyz)
{
  switch(xyz)
  {
    case 123:
    break;
    case 2342:
    break;
  }
}
</code></pre>
<p>Es geht mir hierbei wirklich nur um organisatorische Vereinfachung des Quelltexts und die prinzipielle Frage, ob ich dadurch einen Geschwindigkeitsverlust habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514508</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 17:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 18:09:12 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Es geht mir hierbei wirklich nur um <strong>organisatorische Vereinfachung des Quelltexts</strong> und die prinzipielle Frage, ob ich dadurch einen Geschwindigkeitsverlust habe?</p>
</blockquote>
<p>Du findest es also eine organisatorische Vereinfachung, wenn du statt einer lieber zwei Funktionen schreibst, von denen die eine nichts anderes tut, als die andere aufzurufen?<br />
Ich frage mich sowieso, wie das geht, weil <code>a()</code> ja gar keine Parameter übergeben bekommt.</p>
<p>Oder wäre da noch mehr dabei, und du hast nur eine Kurzform des Codes aufgeschrieben? Dann solltest du mindestens das noch ein bisschen mehr ausführen, sonst versteht man nicht, was du organisatorisch vereinfachen willst.</p>
<p>Und wenn es dir nicht um Optimierung geht, was würde dich dann der Geschwindigkeitsverlust stören? Wieso versuchts du es überhaupt mit <code>inline</code> ? Es ist nämlich zweifelhaft, ob der Compiler <code>inline</code> überhaupt anwendet und wenn ja, ob die Inline-Funktion tatsächlich schneller ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514516</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 22 May 2008 18:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 18:16:07 GMT]]></title><description><![CDATA[<p>es ist wahrscheinlich, dass du einen geschwindigkeitsverlust haben wirst. der compiler muss inline nicht befolgen und wird es in diesem wahrscheinlich auch nicht, wenn es mehr als 2 case-statements sind.</p>
<p>der verlust wird aber wahrscheinlich zu vernachlässigen sein. das geht ja schon in den bereich der mikrooptimierung, wenn gar nichts anderes mehr übrig bleibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514518</guid><dc:creator><![CDATA[tanznasenbärchen]]></dc:creator><pubDate>Thu, 22 May 2008 18:16:07 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 18:44:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a> natürlich ist das extrem stark vereinfacht, stell dir vor da kommen je nach Bedingung 3 verschiedene switch anweisungen mit jeweils zig bis hunderten cases und genau diese 3 switch anweisungen wollte ich per inline funktion aufrufen.</p>
<p>Wie macht man das dann verlustfrei? Per Precompiler Makro? Die Funktion wird wirklich oft aufgerufen (ist ein Onlinerollenspiel und die Funktion switched praktisch je nach benutztem Objekt die dann erfolgenden Aktionen), und da will ich nicht unnötig CPU verschwenden für zusätzliche Funktionsaufrufe O.o</p>
<p>Richtig viel CPU fressen sowieso die Wegfindungsroutinen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=":'("
      alt="😢"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514537</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 18:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 18:55:34 GMT]]></title><description><![CDATA[<p>Wenn du sowieso immer gerade eine Zahl einfügst (also z.B. <code>case 421:</code> ), dann brauchst du eigentlich keine Makros. Die sind höchstens zur Übersichtlichkeit, wobei sie auch Nachteile mit sich bringen (wurde in einem anderen Thread gerade diskutiert, ich glaube, im C-Forum).</p>
<p>Ich glaube, es gibt Alternativen zu switch, leider kenne ich mich da auch nicht aus (Boost? std::map?)...</p>
<p>Du könntest eventuell ein wenig Rechenzeit gewinnen, wenn du Fälle nach Häufigkeit sortierst, d.h. die cases am Anfang, die am meisten vorkommen. Dann müssen nicht immer alle Fälle durchgegangen werden...</p>
<p>Generell würde ich sagen, du solltest eher versuchen, die Algorithmen zu optimieren, ich bezweifle stark, dass du mit <code>inline</code> viel gewinnen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514556</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 22 May 2008 18:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:02:50 GMT]]></title><description><![CDATA[<p>Nexus irgendwie verstehst du gar nicht so recht was ich will..</p>
<p>Erstens will ich gar nix optimieren von dem Switch Statement, das ist super so?!?<br />
Und warum bitte schön sollte es was bringen oft benutzte cases nach vorne zu machen? Ich mein <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="😕"
    /> <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="😕"
    /> Schon mal was von jumptables gehört?</p>
<p>Mir ging es um die Frage, ob ich dieses Switch statements in andere Dateien auslagern kann, aus rein ÄSTHETISCHEN Aspekten, und ob das ohne Geschwindgkeitsverlust möglich ist!</p>
<p><strong>Frage: würde das #include statement so funktionieren?:</strong></p>
<p>Datei main.cpp:</p>
<pre><code>int main(int argc, char *argv[])
{
  #include &quot;outsourcedfunction.h&quot;
}
</code></pre>
<p>Datei outsourcedfunction.h:</p>
<pre><code>std::cout &lt;&lt; &quot;Dies ist der ausgelagerte Funktionsbody&quot; &lt;&lt; std::endl;
</code></pre>
<p>Das wäre zumindestens eine Lösung für mein Problem hehehe..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514567</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 19:02:50 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:21:37 GMT]]></title><description><![CDATA[<p>Tut mir echt leid, dass ich dich falsch verstanden habe, dabei versuche ich nur zu helfen... Ich hoffe, dieses Mal ist meine Antwort brauchbarer.</p>
<p>Das <code>#include</code> funktioniert so, aber ob das so sauber ist und der Übersichtlichkeit dient, musst du selber wissen... Allerdings gibt es da sicher keinen Geschwindigkeitsverlust, da ja einfach der Code kopiert wird. Ansonsten du kannst ja einfach die Inline-Funktion in einen Header auslagern und diesen Header inkludieren. Ich denke, dann ist eher erkennbar, was gemacht wird, als wenn irgendwelche Anweisungen scheinbar global da drin stehen. Ein guter Compiler sollte bei einer Inline-Funktion auch den Text kopieren, wenn sonst ein Geschwindigkeitsverlust entsteht. Sicher bin ich mir da allerdings nicht.<br />
Aber wie gesagt, deine Entscheidung.</p>
<p>Und nebenbei: Wird bei <code>switch()</code> nicht Fall für Fall durchgearbeitet? Wieso ist es dann so, dass ohne <code>break;</code> gleich der nächste Fall dran kommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514586</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 22 May 2008 19:21:37 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:27:21 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Und nebenbei: Wird bei <code>switch()</code> nicht Fall für Fall durchgearbeitet? Wieso ist es dann so, dass ohne <code>break;</code> gleich der nächste Fall dran kommt?</p>
</blockquote>
<p>Ich wollte dich jetzt nicht anmachen dass du das falsch verstanden hast, ist schon okay :p</p>
<p>simpel, die anweisungen werden hintereinander in den Maschinencode geschrieben (Maschinencode ist ja immer linear) und dann wird einfach per Jumptable zum richtigen Case gesprungen.. switch::case ist teilweise schon bei 2!!! cases schneller als if..else und ab 3 sowieso!</p>
<p>und warum er ohne break weitermacht? Ganz einfach, die case anweisungen stehen wie gesagt ja hintereinander. Ohne das break würde er die alle nacheinander arbeiten, das break ist dann praktisch die anweisung in maschinensprache hinter das ganze switch case konstrukt zu springen <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>und ja das hatte ich ja eigentlich vor, die funktion per header auszulagern, als inline zu includen. Die Frage ist halt ob er das wirklich macht, ob da einer genaueres weiß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514597</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 19:27:21 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:40:57 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Und nebenbei: Wird bei <code>switch()</code> nicht Fall für Fall durchgearbeitet? Wieso ist es dann so, dass ohne <code>break;</code> gleich der nächste Fall dran kommt?</p>
</blockquote>
<p>Ich wollte dich jetzt nicht anmachen dass du das falsch verstanden hast, ist schon okay :p</p>
</blockquote>
<p>Okay, vielen Dank für die Erklärung (sorry, ich hab mich bisher auch nicht ausführlich dafür befasst).</p>
<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>und ja das hatte ich ja eigentlich vor, die funktion per header auszulagern, als inline zu includen. Die Frage ist halt ob er das wirklich macht, ob da einer genaueres weiß.</p>
</blockquote>
<p>Bist du dir überhaupt sicher, dass eine normale Funktion langsamer ist? Ich denke, Funktionen haben ja nicht nur den Vorteil der Übersichtlichkeit, sondern können auch schneller sein als der Code selber... Oder ist das einzige Argument gegen Inline-Funktionen ein zu grosser Quellcode?</p>
<p>An deiner Stelle würde ich das einfach mal ausprobieren. Miss doch die Zeit, die für die Ausführung benötigt wird. Dann kannst du auch schauen, ob mit einer ausgelagerten Inline-Funktion ein Geschwindigkeitsverlust entsteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514612</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 22 May 2008 19:40:57 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:51:07 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Wie macht man das dann verlustfrei? Per Precompiler Makro? Die Funktion wird wirklich oft aufgerufen (ist ein Onlinerollenspiel und die Funktion switched praktisch je nach benutztem Objekt die dann erfolgenden Aktionen), und da will ich nicht unnötig CPU verschwenden für zusätzliche Funktionsaufrufe O.o</p>
</blockquote>
<p>wenn du tatsächlich wert auf die organisation deines codes legst, solltest du von switch auf sprachunterstützte polymorphie (virtual) umsteigen.</p>
<p>praktisch wirst du keinen geschwindigkeitsverlust haben, weder durch einen funktionsaufruf noch durch ein umsteigen auf alternativen zu dem hässlichen switch-block. ohne jetzt mehr darüber zu wissen, wieviel du schon auf einer höheren ebene optimiert hast, hört sich der ganze thread so an, wie wenn du versuchen würdest von berlin nach paris zu kommen und dir dabei gedanken über den besten schuh dafür zu machen. warum nicht einfach mit sandalen ins flugzeug steigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514621</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 22 May 2008 19:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 19:54:41 GMT]]></title><description><![CDATA[<p>Virtual wäre sowas von unpraktisch in dem Fall, aber danke queer_boy, dass du mir erzählen willst, wie ich richtig zu programmieren hab :p<br />
Keine Sorge, ich weiß schon was ich tue, deswegen weicht doch bitte nicht die ganze Zeit vom Thema ab! Ich werde wahrscheinlich diese Include Methode nehmen, wenn jemand etwas besseres kennt, bitte Bescheid sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514624</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 19:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 20:06:41 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Virtual wäre sowas von unpraktisch in dem Fall, aber danke queer_boy, dass du mir erzählen willst, wie ich richtig zu programmieren hab :p<br />
Keine Sorge, ich weiß schon was ich tue, deswegen weicht doch bitte nicht die ganze Zeit vom Thema ab! Ich werde wahrscheinlich diese Include Methode nehmen, wenn jemand etwas besseres kennt, bitte Bescheid sagen.</p>
</blockquote>
<p>Lass es einfach sein.<br />
Sorry wenn das hart klingt, aber lass dir von uns was sagen.</p>
<p>Was du hier machst ist einfach eine katastrophe.</p>
<p>Die Kosten eines Funktionsaufrufs sind laecherlich klein. Hier ist der komplett falsche Ansatz fuer optimierungen. #include fuer Code includes zu verwenden ist einfach nur unwartbar und es gibt kaum eine situation wo das Sinn macht.</p>
<p>lange switch Konstrukte deuten auf schlechtes Design hin. Es gibt selten eine Situation wo lange switches Sinn machen, idR ist polymorphie der richtige Ansatz. Und genau das ist der Punkt wo du ansetzen solltest.</p>
<p>Ich habe schon eine Menge Code geschrieben und nie waren die Kosten eines Funktionsaufrufs auch nur in der Naehe von relevant. Wobei, um ehrlich zu sein: einmal war das der Fall, das war ein dummer getter/setter der in engen loops aufgerufen wurde.</p>
<p>Und weisst du wie ich das optimiert habe? ich habe einen opcode cache installiert (war php code) und schon war die Sache erledigt.</p>
<p>eine funktion die sowieso laengere laufzeit von mehr als ein paar nanosekunden hat, kann locker die kosten eines aufrufs vertragen (die enorm gering sind).</p>
<p>die richtige variante waere sehr sehr viele kleine funktionen zu haben. die regel ist etwa so, dass jede Funktion die ueber 6 Zeilen Code enthaelt zu gross ist. Die meist angewandte regel sagt dass 10 zeilen code zuviel sind. Manche aktzeptieren auch noch 12 zeilen code. aber dann wird es schon langsam zu viel und ist nur noch in ausnahme situationen sinnvoll.</p>
<p>und solche ausnahme situationen kommen enorm selten vor. viele leute denken immer, dass sie sich in so einer ausnahme situation befinden, aber das ist so gut wie nie der fall...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514633</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 22 May 2008 20:06:41 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 20:12:07 GMT]]></title><description><![CDATA[<p>Mädels langsam regt ihr mich auf. Nochmal zum mitschreiben:</p>
<ol>
<li>Ich weiß was ich tue.</li>
<li>Ich will <strong>IMMER NOCH NICHT</strong> optimieren.</li>
<li>Nein, Polymorphie ist nicht der richtige Ansatz.</li>
</ol>
<p>Also _BITTE_ hört auf mir vorschreiben zu wollen wie ich zu programmieren habe!<br />
<strong>Ich möchte nur wissen wie man Funktionsteile OHNE Verluste in andere Dateien auslagern kann.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514637</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 22 May 2008 20:12:07 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Thu, 22 May 2008 20:26:48 GMT]]></title><description><![CDATA[<p>#include oder mit Funktionen. Wobei ich zu Funktionen raten würde... Icludieren ist Meines Erachtens kein toller Stil. Ist Aber Ansichtssache. Includieren ist wahrscheinlich minimal schneller</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514648</guid><dc:creator><![CDATA[Mr X]]></dc:creator><pubDate>Thu, 22 May 2008 20:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 05:02:05 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Ich weiß was ich tue.</p>
</blockquote>
<p>Wenn dem so ist, müsstest du auch wissen, dass diese Frage in diesem Unterforum falsch platziert ist. Schließlich handelt es sich nicht um ein Sprachproblem sondern um das einer bestimmten Implementation - aus Sicht der Sprache allein ist die Fragestellung sogar völlig sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514792</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 23 May 2008 05:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 05:03:20 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Ich weiß was ich tue.</p>
</blockquote>
<p>Wenn dem so ist, müsstest du auch wissen, dass diese Frage in diesem Unterforum falsch platziert ist. Schließlich handelt es sich nicht um ein Sprachproblem sondern um das einer bestimmten Implementation - aus Sicht der Sprache allein ist die Fragestellung sogar völlig sinnlos.</p>
</blockquote>
<p>Naja eigentlich ist es doch ein Sprachproblem, nämlich welche Möglichkeiten dir Standardkonformes C++ für so eine Aufgabe gibt, und da fällt mir spontant nur #include oder eine inline Funktion ein..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514793</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 May 2008 05:03:20 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 06:31:37 GMT]]></title><description><![CDATA[<p>Dann mach es doch einfach so!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514815</guid><dc:creator><![CDATA[Mr X]]></dc:creator><pubDate>Fri, 23 May 2008 06:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 06:35:22 GMT]]></title><description><![CDATA[<p>Mr X schrieb:</p>
<blockquote>
<p>Dann mach es doch einfach so!</p>
</blockquote>
<p>Die Frage ob eine inline Funktion genauso schnell ist hat mir ja immer noch keiner wirklich beantwortet, oder sogar die Frage ob der Compiler die Funktion doch nicht als inline benutzen würde O.o</p>
<p>Das war ja auch der Sinn dieses Threads..</p>
<p>Ich benutzen übrigens den g++ unter Debian, wenn das etwas ausmacht! ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514818</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 May 2008 06:35:22 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 07:01:34 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<ol start="2">
<li>Ich will <strong>IMMER NOCH NICHT</strong> optimieren.</li>
</ol>
</blockquote>
<p>Du sagst doch, dass du deine Riesen-switch-Anweisung aus Angst, Performance zu verlieren, in einer Riesen-Funktion hälst. Dann ist dies folgerichtig ein Optimierungsversuch von dir (denn davon hat Shade of Mine gesprochen, er hat keine weiteren Optimierungen vorgeschlagen), der immens zu Lasten der Übersichtlichkeit geht. Shade of Mine hat dir erklärt, dass Funktionsaufrufe kaum Leistung kosten und diese &quot;Optimierung&quot; somit nutzlos ist. Du kannst also ruhig Unterfunktionen bilden und auf includes und dergleichen verzichten. Problem gelöst!</p>
<p>Wenn du seinen Worten nicht traust bzw. anderer Ansicht bist, dann miss doch einfach mal ein paar Millionen/Milliarden Durchläufe und sieh dir den tatsächlichen Unterschied an (am besten in Relation zur Häufigkeit der Funktionsaufrufe in deiner Anwendung). Das würde mich auch interessieren (=&gt; also ggf. hier posten!).</p>
<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<ol start="3">
<li>Nein, Polymorphie ist nicht der richtige Ansatz.</li>
</ol>
</blockquote>
<p>Warum nicht?</p>
<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p>Ich möchte nur wissen wie man Funktionsteile OHNE Verluste in andere Dateien auslagern kann.</p>
</blockquote>
<p>Ohne nennenswerte Verluste? Siehe 1).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514829</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 23 May 2008 07:01:34 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 07:17:46 GMT]]></title><description><![CDATA[<p>Das halte ich für eine sehr schlechte Idee.<br />
Der Code wird schwer wartbar und es gibt viel Code Duplikation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514847</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Fri, 23 May 2008 07:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 07:45:44 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<ol>
<li>Ich weiß was ich tue.</li>
</ol>
</blockquote>
<p>Das macht leider nicht den Anschein. Bitte <em>nicht</em> falsch verstehen. Es kann durchaus sein, dass Du wirklich weißt, was Du tust. Aber damit man Dir sinnvoll helfen kann, solltest Du uns das auch zeigen.</p>
<blockquote>
<ol start="3">
<li>Nein, Polymorphie ist nicht der richtige Ansatz.</li>
</ol>
</blockquote>
<p>So, wie Du es beschrieben hast, macht Dein 'switch' nichts anderes, als Polymorphie schlecht nachzubauen. Von daher wäre Polymorphie also sehr wohl der richtige Ansatz. Wenn er das nicht ist, erzähl doch mal genauer, was Dein 'switch' machen soll.</p>
<blockquote>
<p><strong>Ich möchte nur wissen wie man Funktionsteile OHNE Verluste in andere Dateien auslagern kann.</strong></p>
</blockquote>
<p>Lager einfach in Funktionen aus, die Du aufrufst, da gibt es keinen Verlust. Im Gegenteil, der Code könnte dadurch sogar schneller werden (auch wenn Dir das ja nicht wichtig ist), weil Deine Hauptfunktion dadurch kleiner wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514868</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 23 May 2008 07:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to inline wirklich 100% genauso schnell wie wenn ich den Funktionstext nochmal reinschreibe? on Fri, 23 May 2008 08:26:50 GMT]]></title><description><![CDATA[<p>NeWs0fTzzz schrieb:</p>
<blockquote>
<p><strong>Ich möchte nur wissen wie man Funktionsteile OHNE Verluste in andere Dateien auslagern kann.</strong></p>
</blockquote>
<p>dann probiers halt aus. <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="🙄"
    /> was man dir sagt glaubst du doch sowieso nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514902</guid><dc:creator><![CDATA[faulersack]]></dc:creator><pubDate>Fri, 23 May 2008 08:26:50 GMT</pubDate></item></channel></rss>