<?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[Globale Variablen in einer Header eingebunden in mehrere Dateien]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier ein sehr altes Programm das hat eine Header-Datei besitzt die so aussieht:</p>
<p>GlobalVars.h</p>
<pre><code class="language-cpp">static const data1* = LoadData(&quot;file1&quot;);
static const data2* = LoadData(&quot;file2&quot;);
static const data3* = LoadData(&quot;file3&quot;);
</code></pre>
<p>Diese Header-Datei wird jetzt in mehrere andere Dateien eingebunden und jedes mal wird der Code dann wieder ausgeführt. Wie kann ich es hinbekommen das alle anderen Dateien auf die gleichen Variablen zugreifen und die GlobalVars.h genau nur einmal ausgeführt wird. Ich weiß es ist alles schlechter Code und ich habe keine Ahnung wer das Programm damals geschrieben hat aber jetzt geht es darum das ganze mit so wenig Änderungen wie möglich zu beheben.</p>
<p>mfg:)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214134/globale-variablen-in-einer-header-eingebunden-in-mehrere-dateien</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 18:40:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214134.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 May 2008 06:11:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:11:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier ein sehr altes Programm das hat eine Header-Datei besitzt die so aussieht:</p>
<p>GlobalVars.h</p>
<pre><code class="language-cpp">static const data1* = LoadData(&quot;file1&quot;);
static const data2* = LoadData(&quot;file2&quot;);
static const data3* = LoadData(&quot;file3&quot;);
</code></pre>
<p>Diese Header-Datei wird jetzt in mehrere andere Dateien eingebunden und jedes mal wird der Code dann wieder ausgeführt. Wie kann ich es hinbekommen das alle anderen Dateien auf die gleichen Variablen zugreifen und die GlobalVars.h genau nur einmal ausgeführt wird. Ich weiß es ist alles schlechter Code und ich habe keine Ahnung wer das Programm damals geschrieben hat aber jetzt geht es darum das ganze mit so wenig Änderungen wie möglich zu beheben.</p>
<p>mfg:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516701</guid><dc:creator><![CDATA[Peter_Hansen]]></dc:creator><pubDate>Mon, 26 May 2008 06:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:17:48 GMT]]></title><description><![CDATA[<p>Zum Beispiel, indem du</p>
<pre><code class="language-cpp">#pragma once
</code></pre>
<p>an den Anfang des Headers schreibst.</p>
<p>Oder mit Include-Guards, das sieht so aus:</p>
<pre><code class="language-cpp">#ifndef __GLOBAL_VARS_H__
#define __GLOBAL_VARS_H__

/* Inhalt deines Headers */

#endif
</code></pre>
<p>Ist die PräPro-Variable __GLOBAL_VARS_H__ nicht definiert, wird sie definiert und der Code des Headers ausgeführt. Beim nächsten Versuch ist die Variable bereits existent und der Code wird ignoriert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516702</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 26 May 2008 06:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:19:17 GMT]]></title><description><![CDATA[<p>Wenn es das ist wo du drauf hinauswillst was ich denke <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="😉"
    /> dann solltest du mal nach <strong>Include-Guards</strong> gucken.</p>
<p>EDIT:Mist, zu langsam <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516703</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 26 May 2008 06:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:20:36 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16702">@_matze</a>, Firefighter: Es geht hier um mehrere ÜEn, da bringen Include-Guards gar nichts.</p>
<p>Peter_Hansen, ersetz den Code in der Headerdatei durch das hier:</p>
<pre><code class="language-cpp">extern const data1*;
extern const data2*;
extern const data3*;
</code></pre>
<p>Und schreib das hier in <em>genau eine</em> Quellcodedatei:</p>
<pre><code class="language-cpp">const data1* = LoadData(&quot;file1&quot;);
const data2* = LoadData(&quot;file2&quot;);
const data3* = LoadData(&quot;file3&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1516704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516704</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 26 May 2008 06:20:36 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:28:02 GMT]]></title><description><![CDATA[<p>Achso...gut ok dann bringt das natürlich nix was wir geschrieben haben, stimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516707</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 26 May 2008 06:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 06:31:03 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16702">@_matze</a>, Firefighter: Es geht hier um mehrere ÜEn, da bringen Include-Guards gar nichts.</p>
<p>Peter_Hansen, ersetz den Code in der Headerdatei durch das hier:</p>
<pre><code class="language-cpp">extern const data1*;
extern const data2*;
extern const data3*;
</code></pre>
<p>Und schreib das hier in <em>genau eine</em> Quellcodedatei:</p>
<pre><code class="language-cpp">const data1* = LoadData(&quot;file1&quot;);
const data2* = LoadData(&quot;file2&quot;);
const data3* = LoadData(&quot;file3&quot;);
</code></pre>
</blockquote>
<p>Vielen Dank, das ist meine Rettung:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516709</guid><dc:creator><![CDATA[Peter_Hansen]]></dc:creator><pubDate>Mon, 26 May 2008 06:31:03 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 13:16:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">static const data1* = LoadData(&quot;file1&quot;);
static const data2* = LoadData(&quot;file2&quot;);
static const data3* = LoadData(&quot;file3&quot;);
</code></pre>
<p>Könnte mir jemand erklären, was es damit auf sich hat? Seit wann darf man in C++ denn einfach die Typenangabe weglassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516923</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Mon, 26 May 2008 13:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 13:27:23 GMT]]></title><description><![CDATA[<p>Nanyuki schrieb:</p>
<blockquote>
<p>Könnte mir jemand erklären, was es damit auf sich hat? Seit wann darf man in C++ denn einfach die Typenangabe weglassen?</p>
</blockquote>
<p>Seit es immer noch Compiler gibt, die ein &quot;default-int&quot; annehmen (ist natürlich nicht Standardkonform, und könnte auch ungewünscht sein, aber egal), auch wenn ich mir sicher bin, das dies zumindestens als Warnung ausgegeben wird (Zumindestens in der höchsten Warnstufe)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516931</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 26 May 2008 13:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 13:41:01 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Seit es immer noch Compiler gibt, die ein &quot;default-int&quot; annehmen (ist natürlich nicht Standardkonform, und könnte auch ungewünscht sein, aber egal), auch wenn ich mir sicher bin, das dies zumindestens als Warnung ausgegeben wird (Zumindestens in der höchsten Warnstufe)...</p>
</blockquote>
<p>Und der Stern hinterm Bezeichner?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516949</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Mon, 26 May 2008 13:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to Globale Variablen in einer Header eingebunden in mehrere Dateien on Mon, 26 May 2008 14:51:31 GMT]]></title><description><![CDATA[<p>LordJaxom_lg schrieb:</p>
<blockquote>
<p>Und der Stern hinterm Bezeichner?</p>
</blockquote>
<p>Wird dann vermutlich als &lt;default-int&gt;* sprich int* interpretiert. Oder aber sind das unbenannte Objekte des Typs data1..data3 (Was auch ein Fehler wäre)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516999</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 26 May 2008 14:51:31 GMT</pubDate></item></channel></rss>