<?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[include blocker]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn man eine neue header Datei schreibt beginnt diese immer mit:<br />
#ifndef HEADER_H</p>
<p>welchen sinn hat das nochmal ?</p>
<p>Das eben diese header Datei nicht mehrmals eingebunden wird oder<br />
ein anderer der am Projekt mitarbeitet nicht eine header datei mit demselben Namen anlegt und der linker dann nicht weiß welche er nehmen soll ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243366/include-blocker</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:14:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243366.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Jun 2009 23:12:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to include blocker on Mon, 15 Jun 2009 23:12:08 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn man eine neue header Datei schreibt beginnt diese immer mit:<br />
#ifndef HEADER_H</p>
<p>welchen sinn hat das nochmal ?</p>
<p>Das eben diese header Datei nicht mehrmals eingebunden wird oder<br />
ein anderer der am Projekt mitarbeitet nicht eine header datei mit demselben Namen anlegt und der linker dann nicht weiß welche er nehmen soll ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727275</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Mon, 15 Jun 2009 23:12:08 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Mon, 15 Jun 2009 23:20:37 GMT]]></title><description><![CDATA[<p>Dass eben diese Header-Datei nicht mehrmals eingebunden wird <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/1727277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727277</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 15 Jun 2009 23:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Mon, 15 Jun 2009 23:20:45 GMT]]></title><description><![CDATA[<p>Ersteres:</p>
<pre><code class="language-cpp">// header.h
#ifndef FOO
#define FOO

void someFunc() {}

#endif

// main.cpp

#include &quot;header.h&quot;    // Präprozessor ersetzt diese Zeile mit dem gesamten Inhalt von header.h

...

#include &quot;header.h&quot;    // Präprozessor ... wie oben ;)
</code></pre>
<p>Das ist der einfachste Fall, wie eine Datei doppelt in eine Übersetzungseinheit gelangen kann. Beim ersten include ist FOO noch nicht definiert, deshalb wird someFunc() erfolgreich &quot;in die Übersetzungseinheit eingefügt&quot;. Beim zweiten include ist FOO bereits definiert, sodass someFunc() nicht redefiniert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727278</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 15 Jun 2009 23:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Mon, 15 Jun 2009 23:21:46 GMT]]></title><description><![CDATA[<p>Es geht hierbei weder um den Linker noch um andere Mitarbeiter. Der Header Guard (nicht Blocker) dient dazu, dass man einen Header in einer TU mehrmals inkludieren kann, ohne die Gefahr einer Mehrfachdefinition befürchten zu müssen. Es geht hier also um ein Hilfsmittel, um die <em>One-Definition-Rule</em> (ODR) zu gewährleisten.</p>
<p>Einfachstes Beispiel:<br />
<strong>header.hpp</strong></p>
<pre><code class="language-cpp">#ifndef MY_HEADER_GUARD_WITH_CRYPTIC_NUMBER_0342521341

#ifdef USE_HEADER_GUARDS // Hilfsmittel für das Beispiel
#  define MY_HEADER_GUARD_WITH_CRYPTIC_NUMBER_0342521341
#endif

struct MyStruct
{
};

#endif // MY_HEADER_GUARD_WITH_CRYPTIC_NUMBER_0342521341
</code></pre>
<p><strong>tu.cpp</strong></p>
<pre><code class="language-cpp">#define USE_HEADER_GUARDS // (1)

#include &quot;header.hpp&quot;
#include &quot;header.hpp&quot;

int main()
{
  return 0;
}
</code></pre>
<p>Dieser Code wird kompilieren. Wenn du die mit <code>(1)</code> markierte Zeile auskommentierst, wird der Code nicht mehr kompilieren.<br />
(Code ist ungetestet)</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727279</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Jun 2009 23:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Tue, 16 Jun 2009 01:43:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a>: Was aber wenn noch andere Studenten, die an der gleichen Uni studieren, zufällig den gleichen Header-Guard verwenden? Das wäre ja dann extrem doof. Und wieso gilt das nur für TUs und nicht für alle Unis? Ich schnalls nicht... <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="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727316</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 16 Jun 2009 01:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Tue, 16 Jun 2009 05:59:44 GMT]]></title><description><![CDATA[<p>FHler machen solche Fehler nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727336</guid><dc:creator><![CDATA[FHler]]></dc:creator><pubDate>Tue, 16 Jun 2009 05:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to include blocker on Tue, 16 Jun 2009 09:36:18 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a>: Was aber wenn noch andere Studenten, die an der gleichen Uni studieren, zufällig den gleichen Header-Guard verwenden? Das wäre ja dann extrem doof. Und wieso gilt das nur für TUs und nicht für alle Unis? Ich schnalls nicht... <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="😕"
    /></p>
</blockquote>
<p>LoL, jetzt habe ich echt zuerst einfach nur hingegafft und gedacht: WTF? (allerdings in Schweizerdeutsch *g*)<br />
Ich sollte wohl weniger Abkürzungen verwenden, hast recht. Erst recht bei einem Anfänger, der weiss wohl nicht, dass TU die Abkürzung für Translation Unit ist und daher meistens in C++ ein <code>*.cpp</code> File bezeichnet.</p>
<p>(ich bin jetzt davon ausgegangen, dass dein Satz ironisch ist und du weisst, was TU bezeichnet. Falls dies nicht der Fall ist, das &quot;Anfänger&quot; nicht auf dich beziehen. ;))</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727450</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:36:18 GMT</pubDate></item></channel></rss>