<?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[Frage zu bestimmter Definition]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<pre><code class="language-cpp">// Blah.h

void Blubb()
{
  static int Array[4] = {0};
  ...
}
</code></pre>
<p>Wird der Speicher für das Array in jedem Modul reserviert, was Blah.h?</p>
<p>Das war's schon! Vielen Dank für Eure Tips!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187549/frage-zu-bestimmter-definition</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 17:55:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187549.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jul 2007 18:07:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Fri, 20 Jul 2007 18:07:54 GMT]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<pre><code class="language-cpp">// Blah.h

void Blubb()
{
  static int Array[4] = {0};
  ...
}
</code></pre>
<p>Wird der Speicher für das Array in jedem Modul reserviert, was Blah.h?</p>
<p>Das war's schon! Vielen Dank für Eure Tips!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329433</guid><dc:creator><![CDATA[OttoDerDritte]]></dc:creator><pubDate>Fri, 20 Jul 2007 18:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Fri, 20 Jul 2007 18:12:21 GMT]]></title><description><![CDATA[<p>Sollte heißen:</p>
<p>Wird der Speicher für das Array in jedem Modul reserviert, in welches Blah.h eingefügt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329435</guid><dc:creator><![CDATA[OttoDerDritte]]></dc:creator><pubDate>Fri, 20 Jul 2007 18:12:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Sat, 21 Jul 2007 01:13:49 GMT]]></title><description><![CDATA[<p>nein. nur einmal. und zwar beim erstmaligen aufruf der funktion.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329577</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 21 Jul 2007 01:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Sat, 21 Jul 2007 02:48:39 GMT]]></title><description><![CDATA[<p>OttoDerDritte schrieb:</p>
<blockquote>
<p>Hallo Allerseits!</p>
<pre><code class="language-cpp">// Blah.h

void Blubb()
{
  static int Array[4] = {0};
  ...
}
</code></pre>
<p>Wird der Speicher für das Array in jedem Modul reserviert, was Blah.h?</p>
<p>Das war's schon! Vielen Dank für Eure Tips!</p>
</blockquote>
<p>...was Blah.h einbindet, nehme ich an.</p>
<p>Ja. Eben so wird die Funktion in jedem Modul definiert, woraufhin sich der Linker beschweren wird, dass mehrere Funktionen mit gleichen Namen existieren, wenn die Module zusammengefügt werden.</p>
<p>Code hat in Header-Dateien nur etwas zu suchen, wenn er inline oder als template-Funktion deklariert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329590</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sat, 21 Jul 2007 02:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Sat, 21 Jul 2007 05:43:08 GMT]]></title><description><![CDATA[<p>Wenn du die Funktion Blah inline machst ist es OK sie in einem Headerfile zu haben (sonst eher nicht, ausser das Headerfile wird genau 1x im Projekt verwendet, dann braucht es aber eigentlich kein Headerfile mehr zu sein).</p>
<p>Die statischen Variablen da drinnen dürfen laut C++ Standard trotzdem nicht &quot;dupliziert&quot; werden. Bloss halten sich leider nicht alle Compiler so 100% daran.</p>
<p>Mit MSVC 7.1 gibt es in einigen Situationen z.B. Probleme, speziell mit Klassentypen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329594</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 21 Jul 2007 05:43:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Sat, 21 Jul 2007 08:40:40 GMT]]></title><description><![CDATA[<p>Dafür gibts in VC doch __declspec(selectany), wobei dann nur eine definition aus den modulen als endgültiger wert herausgesucht wird oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329617</guid><dc:creator><![CDATA[Dennis123]]></dc:creator><pubDate>Sat, 21 Jul 2007 08:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu bestimmter Definition on Sun, 22 Jul 2007 02:52:15 GMT]]></title><description><![CDATA[<p>Nope.<br />
Das Problem beim VC7.1 ist nicht dass er die Variable doppelt anlegen würde, sondern dass er das Flag welches abgibt ob sie schon konstruiert wurde doppelt anlegt.<br />
Passiert auch nicht in allen Situationen, anscheinend nur bei static inline Memberfunktionen mit lokalen static Variablen - bei normalen inline Memberfunktionen mit static Variablen funktioniert es wie es sollte.</p>
<p>Der Effekt ist dann dass die Variable z.B. doppelt konstruiert wird (was man oft nicht merkt), aber auch doppelt zerstört wird (was oft sehr schlecht ist).<br />
Da dieses Flag in C++ &quot;keinen Namen hat&quot; (weil es ein Implementierungs-Detail ist) kann man auch kein __declspec(selectany) davorpacken.</p>
<p>Davon abgesehen, selbst WENN man mit __declspec(selectany) den Problem beheben könnte wäre das Verhalten von VC7.1 immernoch falsch, da der Standard eben verlangt dass es ohne irgendwelche tricks &quot;ganz automatisch&quot; richtig gemacht wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330051</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 22 Jul 2007 02:52:15 GMT</pubDate></item></channel></rss>