<?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[Newbie hat Fragen]]></title><description><![CDATA[<p>also ich arbeite grad ein Buch zum Thema C++ durch, soweit so...</p>
<p>naja ich bin dabei wie ihr euch denken könnt über Fragen gestolpert:<br />
1.) inline... <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="😕"
    /><br />
wann ist die Verwendung empfehlenswert, oder ist inline gar nicht empfehlenswert???<br />
2.) Die Präprozessormakros... <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="😕"
    /><br />
Dasselbe in grün: Wann sollte man die benutzen und wenn gar nicht warum hat sich niemand die Mühe gemacht das komplett rauszunehmen???<br />
3.) Wo schreibe ich Funktionen am besten hin... <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="😕"
    /><br />
Vor, oder hinter main???</p>
<p>also wenn sich jemand die Mühe macht mir zu antworten wär cool und dann bitte nicht sone Antworten wie ja/ja/nein, sonder ich würd gern verstehen warum dass dann so ist, allet klar <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>mfg und danke im voraus<br />
Δερ νερδ</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224751/newbie-hat-fragen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 04:20:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224751.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Oct 2008 17:07:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Newbie hat Fragen on Tue, 14 Oct 2008 17:07:45 GMT]]></title><description><![CDATA[<p>also ich arbeite grad ein Buch zum Thema C++ durch, soweit so...</p>
<p>naja ich bin dabei wie ihr euch denken könnt über Fragen gestolpert:<br />
1.) inline... <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="😕"
    /><br />
wann ist die Verwendung empfehlenswert, oder ist inline gar nicht empfehlenswert???<br />
2.) Die Präprozessormakros... <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="😕"
    /><br />
Dasselbe in grün: Wann sollte man die benutzen und wenn gar nicht warum hat sich niemand die Mühe gemacht das komplett rauszunehmen???<br />
3.) Wo schreibe ich Funktionen am besten hin... <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="😕"
    /><br />
Vor, oder hinter main???</p>
<p>also wenn sich jemand die Mühe macht mir zu antworten wär cool und dann bitte nicht sone Antworten wie ja/ja/nein, sonder ich würd gern verstehen warum dass dann so ist, allet klar <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>mfg und danke im voraus<br />
Δερ νερδ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598931</guid><dc:creator><![CDATA[N.E.R.D.]]></dc:creator><pubDate>Tue, 14 Oct 2008 17:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to Newbie hat Fragen on Tue, 14 Oct 2008 17:34:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>erstmal vorweg: Was ich sage, ist ziemlich subjektiv.</p>
<p>N.E.R.D. schrieb:</p>
<blockquote>
<p>...<br />
1.) inline... <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="😕"
    /><br />
wann ist die Verwendung empfehlenswert, oder ist inline gar nicht empfehlenswert??? ...</p>
</blockquote>
<p>Solange Du &quot;normale Programme&quot; schreibst, kannst/solltest Du das getrost weglassen - verwirrt nur und macht in 99% der Fälle nicht das, was Du denkst.<br />
Erst da, wo man sehr gezielt für einen bestimmten Compiler/Plattform/Programm optimiert, kann man das vereinzelt und geprüft sinnvoll einsetzen.</p>
<p>N.E.R.D. schrieb:</p>
<blockquote>
<p>...<br />
2.) Die Präprozessormakros... <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="😕"
    /><br />
Dasselbe in grün: Wann sollte man die benutzen und wenn gar nicht warum hat sich niemand die Mühe gemacht das komplett rauszunehmen???...</p>
</blockquote>
<p>Makros sind &quot;historisch gewachsen&quot; aus C (und C ist eine ziemlich alte Sprache). Inzwischen gibt es für die allermeisten Fälle bessere (=übersichtlichere/fehler-unanfälligere) Lösungen.<br />
Wenn man tatsächlich Makros &quot;verbieten&quot; würde, gäbe es Millionen von Programmen, die nicht mehr funktionieren/umgeschrieben werden müssten.<br />
Außerdem sind C und C++ Sprachen, in denen man zwar alles an die Hand bekommt, um gut zu programmieren, .... in denen man aber nicht automatisch verboten bekommt, schlecht zu programmieren.</p>
<p>N.E.R.D. schrieb:</p>
<blockquote>
<p>...<br />
3.) Wo schreibe ich Funktionen am besten hin... <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="😕"
    /><br />
Vor, oder hinter main???...</p>
</blockquote>
<p>Das bleibt letztlich Dir überlassen und dem, was Du für übersichtlicher hältst.<br />
Allerdings muss jede Funktion vor ihrem Aufruf &quot;angekündigt&quot; (also zumindestens mit einer &quot;forward declaration&quot;/&quot;prototypen&quot; dem Compiler bekannt gemacht) werden.<br />
Sobald man &quot;ein wenig mehr&quot; programmiert, wird sowieso die Unterteilung Module notwendig....</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598940</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 14 Oct 2008 17:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Newbie hat Fragen on Tue, 14 Oct 2008 18:01:32 GMT]]></title><description><![CDATA[<p>Wenn ich da ein paar Ergänzungen zum Beitrag von Simon2 machen darf:</p>
<ol>
<li><code>inline</code> hat nichts mit optimieren zu tun. Vom Standard her gibt es keine Garantie, dass eine Funktion <code>inline</code> aufgerufen wird, wenn das Schlüsselwort <code>inline</code> vor ihr steht. <code>inline</code> wird nur dafür genutzt, damit Funktionsdefinitionen in Headern nicht zu Mehrfachdefinitionen führt.</li>
</ol>
<pre><code class="language-cpp">// X.hpp

inline void foo()
{
  // whatever
}

// A.cpp

#include &quot;X.hpp&quot;

// B.cpp

#include &quot;X.hpp&quot;
</code></pre>
<p>Wenn foo nicht als <code>inline</code> angegeben worden wäre, dann wäre eine Mehrfachdefinition vorhanden gewesen. Eine Defintion in <code>A.cpp</code> und eine in <code>B.cpp</code> .</p>
<ol start="2">
<li>Makros sind nicht einfach nur schlecht. Man sollte sie allerdings mit bedacht benutzen und es zuerst über alle anderen Wege probieren. Im allgemeinen sollte man Makros meiden, es gibt aber Fälle wo sie entweder unumgänglich sind oder sogar einen unglaublichen Nutzen bringen.<br />
Unumgänglich sind sie zum Beispiel bei Header-Guards, was vor mehrfachem inkludieren schützt:</li>
</ol>
<pre><code class="language-cpp">#ifndef MYHEADERNAME_HEADER_GUARD_HASH_WHATEVER
#define MYHEADERNAME_HEADER_GUARD_HASH_WHATEVER

// Was man alles im Header haben möchte ...

#endif
</code></pre>
<p>Einen unglaublichen Nutzen bringen sie zum Beispiel in der Codegenerierung. Wenn man oft sehr ähnlichen Code hat, nur mit z.B. anderen Namen, kann man Makros verwenden, um sich diesen Code einfach erstellen zu lassen, was einem dann Tipparbeit erspart. Ein Beispiel dafür, kann man in diesem Artikel finden:<br />
<a href="http://magazin.c-plusplus.net/artikel/Benutzerdefinierte%20Manipulatoren" rel="nofollow">http://magazin.c-plusplus.net/artikel/Benutzerdefinierte Manipulatoren</a><br />
Kapitel 3 und 4.</p>
<p>3. Am besten teilt man die Funktionen in Gruppen auf und erstellt dann für die Deklaration ein Headerfile (z.B. <code>*.hpp</code> ) und für die Definition ein Implementationsfile (z.B. <code>*.cpp</code> ).<br />
Die main setzt man dann in eine <code>main.cpp</code> und inkludiert die entsprechenden Headerfiles, welche man benötigt.<br />
Also weder davor noch danach, sondern man linkt <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598950</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 14 Oct 2008 18:01:32 GMT</pubDate></item></channel></rss>