<?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[static Variable speichert jeder für sich selbst?]]></title><description><![CDATA[<p>Moin moin!</p>
<p>threading.h</p>
<pre><code class="language-cpp">#ifndef THREADING
#define THREADING

#include &lt;pthread.h&gt;

#include &quot;soundcheck.h&quot;

namespace threads
{
	static pthread_cond_t ct_todolist_newinfo = PTHREAD_COND_INITIALIZER;
//[...]
}
#endif
</code></pre>
<p>threading.cxx</p>
<pre><code class="language-cpp">#include &quot;threading.h&quot;
//[...]
</code></pre>
<p>soundcheck.cxx</p>
<pre><code class="language-cpp">#include &quot;threading.h&quot;
//[...]
</code></pre>
<p>Wenn ich jetzt aus threading.cxx und soundcheck.cxx auf diese Variable (&amp;threads::ct_todolist_newinfo) zugreife, sieht es ganz so aus als gäbe es zwei unterschiedlich Variablen (genauer: Zwei unterschiedliche Werte). Ganz genau das, was ich nicht will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Was mache ich falsch?</p>
<p>gruß trigger</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/280081/static-variable-speichert-jeder-für-sich-selbst</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 07:00:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/280081.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Jan 2011 12:26:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static Variable speichert jeder für sich selbst? on Sun, 09 Jan 2011 12:29:02 GMT]]></title><description><![CDATA[<p>Moin moin!</p>
<p>threading.h</p>
<pre><code class="language-cpp">#ifndef THREADING
#define THREADING

#include &lt;pthread.h&gt;

#include &quot;soundcheck.h&quot;

namespace threads
{
	static pthread_cond_t ct_todolist_newinfo = PTHREAD_COND_INITIALIZER;
//[...]
}
#endif
</code></pre>
<p>threading.cxx</p>
<pre><code class="language-cpp">#include &quot;threading.h&quot;
//[...]
</code></pre>
<p>soundcheck.cxx</p>
<pre><code class="language-cpp">#include &quot;threading.h&quot;
//[...]
</code></pre>
<p>Wenn ich jetzt aus threading.cxx und soundcheck.cxx auf diese Variable (&amp;threads::ct_todolist_newinfo) zugreife, sieht es ganz so aus als gäbe es zwei unterschiedlich Variablen (genauer: Zwei unterschiedliche Werte). Ganz genau das, was ich nicht will <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Was mache ich falsch?</p>
<p>gruß trigger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004426</guid><dc:creator><![CDATA[Trigger_Hurt]]></dc:creator><pubDate>Sun, 09 Jan 2011 12:29:02 GMT</pubDate></item><item><title><![CDATA[Reply to static Variable speichert jeder für sich selbst? on Sun, 09 Jan 2011 12:42:32 GMT]]></title><description><![CDATA[<p>'static' bedeutet ja, daß es pro Übersetzungseinheit eine eigene Instanz gibt.</p>
<p>Leg einfach eine normale Variable in threading.cxx an und in der Header-Datei dann eine entsprechende 'extern'-Deklaration.</p>
<p>threading.cxx:</p>
<pre><code class="language-cpp">#include &quot;threading.h&quot;

pthread_cond_t threads::ct_todolist_newinfo = PTHREAD_COND_INITIALIZER;
</code></pre>
<p>threading.h:</p>
<pre><code class="language-cpp">namespace threads
{
    extern pthread_cond_t ct_todolist_newinfo;
//[...]
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2004430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004430</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 09 Jan 2011 12:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to static Variable speichert jeder für sich selbst? on Sun, 09 Jan 2011 12:39:48 GMT]]></title><description><![CDATA[<p>Vielen vielen Dank! Funktioniert jetzt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004436</guid><dc:creator><![CDATA[Trigger_Hurt]]></dc:creator><pubDate>Sun, 09 Jan 2011 12:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to static Variable speichert jeder für sich selbst? on Sun, 09 Jan 2011 12:48:38 GMT]]></title><description><![CDATA[<p>Trigger_Hurt schrieb:</p>
<blockquote>
<p>Was mache ich falsch?</p>
</blockquote>
<p>Du hast hier &quot;static&quot; falsch benutzt. &quot;static&quot; hat zwei unterschiedliche Bedeutungen (genau genomen sogar 3), je nach Kontext. Der eigentliche Sinn von &quot;static&quot; ist es, einem Objekt im statischen Speicher anzulegen (static life-time). Variablen/Objekte auf Namensraumebene haben aber sowieso schon diese Eigenschaft. Hier hat man &quot;static&quot; dazu missbraucht, um &quot;Bindung&quot; (linkage) zu kontrollieren. Du kannst Objekte und Funktionen mit interner und externer Bindung deklarieren. Du willst offensichtlich bei dem Objekt externe Bindung haben, benutzt aber fälschlicherweise &quot;static&quot;, was dazu führt, dass das Objekt eine interne Bindung besitzt.</p>
<p>&quot;static&quot; auf globaler/Namensraum- Ebene ist übrigens in C++ verpönt. Ich glaube, es ist sogar offiziell &quot;deprecated&quot;. In C++ haben wir anonyme Namensräume. Sie haben <em>fast</em> debselben Effekt, nämlich, dass Du aus einer anderen Übersetzungseinheit solche Funktionen oder Objekte nicht direkt ansprechen kannst. Die Bindung wird dabei nicht beeinflusst.</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2004441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2004441</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 09 Jan 2011 12:48:38 GMT</pubDate></item></channel></rss>