<?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[precompiled header]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Eine kleine Frage:<br />
Warum wird der include (#include precompiled.h) immer in die cpp dateien des Projektes geschrieben und nicht in die header dateien eines Projektes? Was ist, wenn ich Teile aus dem precompiled header bereits in den header dateien des projektes benötige?</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250427/precompiled-header</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 01:31:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250427.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Sep 2009 19:16:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 19:16:40 GMT]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Eine kleine Frage:<br />
Warum wird der include (#include precompiled.h) immer in die cpp dateien des Projektes geschrieben und nicht in die header dateien eines Projektes? Was ist, wenn ich Teile aus dem precompiled header bereits in den header dateien des projektes benötige?</p>
<p>Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780698</guid><dc:creator><![CDATA[Roland45]]></dc:creator><pubDate>Thu, 17 Sep 2009 19:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 19:20:14 GMT]]></title><description><![CDATA[<p>Da die <code>#include &quot;precompiled.h&quot;</code> (bei MSVC++ oft <code>&quot;stdafx.h&quot;</code> ) als erste Präprozessoranweisung in der .cpp-Datei stehen, spielt das keine Rolle. Der Header selbst muss ja keinen Zugriff auf die vorkompilierte Datei haben, da er selbst nur indirekt (über .cpp-Dateien) kompiliert wird. Und in den .cpp-Dateien sind dann die Definitionen im vorkompilierten Header sowieso bekannt.</p>
<p>Ich hoffe, das war jetzt nicht allzu verwirrend. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780700</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 17 Sep 2009 19:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 19:25:51 GMT]]></title><description><![CDATA[<p>Ansonsten kannst du, wie es grundsätzlich besser ist die Klassen, die du brauchst (also für Referenzen, Zeiger, Rückgabewerte und Argumente) Vorwärts deklarieren, damit du die Abhängigkeiten noch ein wenig besser verringern kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780704</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 17 Sep 2009 19:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 19:55:50 GMT]]></title><description><![CDATA[<p>Ok danke.</p>
<p>Ich verstehe aber folgendes noch nicht so ganz. Ein Beispiel:</p>
<p>In precompiled.h steht folgendes:<br />
#include &lt;map&gt;</p>
<p>In Test.h steht folgendes:</p>
<p>private:<br />
map&lt;int,int&gt; mMap</p>
<p>In Test.cpp steht am Anfang folgendes:<br />
#include precompiled.h<br />
und irgendwo anders:</p>
<p>mMap[0]=0;<br />
mMap[1]=1;</p>
<p>Warum brauch ich dann in Test.h kein #include &lt;map&gt;? Ich benötige es dort doch für die Deklaration??</p>
<p>Danke vielmals und einen schönen Abend noch <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780719</guid><dc:creator><![CDATA[Roland45]]></dc:creator><pubDate>Thu, 17 Sep 2009 19:55:50 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 19:59:28 GMT]]></title><description><![CDATA[<p>Weil du in der test.cpp zuerst precompiled.h inkludierst und dann test.h. Sprich in deinem Kompilat befindet sich diese Definition nach der Definition von std::map.</p>
<p>test.cpp:</p>
<pre><code class="language-cpp">#include &quot;precompiled.h&quot; // &lt;-- inkludiert ja &lt;map&gt;
#include &quot;test.h&quot; // &lt;-- kriegt jetzt von oben her die map

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1780720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780720</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 17 Sep 2009 19:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 20:04:59 GMT]]></title><description><![CDATA[<p>Du musst einfach dran denken, dass an der Stelle, wo ein <code>#include</code> steht, der gesamte Code des gewünschten Headers eingebunden wird. Nach dem Präprozessorvorgang gibt es also keine eigentlichen, von den .cpp-Dateien separierten Headerdateien mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780723</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 17 Sep 2009 20:04:59 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 20:09:07 GMT]]></title><description><![CDATA[<p>ok.</p>
<p>Warum spricht man dabei eigentlich von definition? in den header dateien, die inkludiert werden, stehen doch meist nur deklarationen...</p>
<p>danke vielmals.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780724</guid><dc:creator><![CDATA[Roland45]]></dc:creator><pubDate>Thu, 17 Sep 2009 20:09:07 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Thu, 17 Sep 2009 20:16:40 GMT]]></title><description><![CDATA[<p>Zum Beispiel Klassen-, Typ- oder Namensraumdefinitionen sind sehr oft in Headerdateien anzutreffen:</p>
<pre><code class="language-cpp">namespace xyz // Namensraum-Definition
{

class MyClass; // Klassendeklaration

class MyClass  // Klassendefinition 
{
    typedef int Type; // Typdefinition
};

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1780727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780727</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 17 Sep 2009 20:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Fri, 18 Sep 2009 05:43:16 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef int Type; // Typdefinition
</code></pre>
</blockquote>
<p>ist auch nur eine Deklaration (3.1/2). Das kann man sich klar machen, wenn man überlegt, dass das Ergebnis von typedef auch ein unvollständiger Typ sein kann. z.B.</p>
<pre><code class="language-cpp">typedef void foo;
class my_class;
typedef my_class classes[10];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1780783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780783</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 18 Sep 2009 05:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to precompiled header on Fri, 18 Sep 2009 12:48:42 GMT]]></title><description><![CDATA[<p>Danke für die Berichtigung. Das Schlüsselwort <code>type</code>  <code>def</code> und die häufige Verwendung des Begriffs Typdefinition haben mich etwas irregeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780988</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 18 Sep 2009 12:48:42 GMT</pubDate></item></channel></rss>