<?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[Unterschied zwischen global und extern ?]]></title><description><![CDATA[<p>Hallo<br />
also mein problem ist, ich versteh den sinn von extern nicht recht..<br />
es gibt doch auch globale variablen...<br />
wieso kann man globale vars, nicht auch in mehreren anderen dateien benutzen, insofern sie darin einebunden sind?<br />
extern jedoch schon ( kann man extern auch dann noch benutzen wenn die dateien nicht eingebunden sind ?)</p>
<p>bitte um ausführliche und verständliche hilfestellung! <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="😉"
    /></p>
<p>thx &amp; mfg!!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154003/unterschied-zwischen-global-und-extern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 12:05:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154003.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 23 Jul 2006 14:09:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 23 Jul 2006 14:09:46 GMT]]></title><description><![CDATA[<p>Hallo<br />
also mein problem ist, ich versteh den sinn von extern nicht recht..<br />
es gibt doch auch globale variablen...<br />
wieso kann man globale vars, nicht auch in mehreren anderen dateien benutzen, insofern sie darin einebunden sind?<br />
extern jedoch schon ( kann man extern auch dann noch benutzen wenn die dateien nicht eingebunden sind ?)</p>
<p>bitte um ausführliche und verständliche hilfestellung! <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="😉"
    /></p>
<p>thx &amp; mfg!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102559</guid><dc:creator><![CDATA[JossBoss]]></dc:creator><pubDate>Sun, 23 Jul 2006 14:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 23 Jul 2006 14:32:59 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>der Unterschied : global Variablen werden pro Übersrtzungseinheit jeweils einmal angelegt. Bei extern hingegen wird nur eine Variable im ganzen Programm angelegt. Das bedeutet du kannst mit extern Werte zwischen einzelnen Übersetzungseinheiten austauschen, mit einfachen globalen Variablen nicht.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102574</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 23 Jul 2006 14:32:59 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 23 Jul 2006 14:36:15 GMT]]></title><description><![CDATA[<p>Schau Dir mal dieses Beispiel mit dem Wert Pi in stdafx.h und stdafx.cpp an:<br />
<a href="http://www.henkessoft.de/C++/C++%20Fortgeschrittene/C++_Fortgeschrittene.htm#1.4._Modulare_Gestaltung_und_Vermeidung" rel="nofollow">http://www.henkessoft.de/C++/C++ Fortgeschrittene/C++_Fortgeschrittene.htm#1.4._Modulare_Gestaltung_und_Vermeidung</a><br />
ansonsten: <a href="http://www.henkessoft.de/C++/Cpp_school/extern.htm" rel="nofollow">http://www.henkessoft.de/C++/Cpp_school/extern.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102576</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 23 Jul 2006 14:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 23 Jul 2006 14:41:45 GMT]]></title><description><![CDATA[<p>k thx hab s jetzt besser verstanden.<br />
nur etwas bleibt bei mir offen:</p>
<p>@Erhard Henkes:<br />
wieso hast du in dem Namespace My die Var Pi als extern deklariert??<br />
stdafx.h ist ja sowieso in die cpp eingebunden, un mit ihr der namespace in dem pi ist, also bräuchte man das extern hier ja gar nicht oder?<br />
im namspace std; sind die vars und funktionen ja auch nicht als ext. deklariert (glaub ich zumindesr) <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="😉"
    /></p>
<p>kann man globale vars auch nicht in anderen dateien benutzen, wenn sie durch ein include eingebunden werden?</p>
<p>thx &amp; mfg!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102580</guid><dc:creator><![CDATA[JossBoss]]></dc:creator><pubDate>Sun, 23 Jul 2006 14:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 23 Jul 2006 15:36:38 GMT]]></title><description><![CDATA[<p>Du beschäftigst Dich wenige Minuten mit diesem Thema und gackerst hier anschließend wieder herum? <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/1102627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102627</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Sun, 23 Jul 2006 15:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Mon, 24 Jul 2006 04:55:14 GMT]]></title><description><![CDATA[<p>Die Erklärung von akari ist so nicht ganz richtig:</p>
<p>Erst einmal unterscheidet man zwischen Programmglobalen und Modulglobalen Variablen.<br />
Modulglobale Variablen werden in einer cpp außerhalb jeder funktion definiert wie Programmglobale Variablen, nur dass man hier das Schlüsselwort static voranstellt. Das ist aber starkes C. In C++ verwendet man da einfach namenslose namespaces. Eine Modulglobale Variable darf pro Modul nur einmal definiert und beliebig oft deklariert werden.<br />
Programmglobale Variablen werden Außerhalb jeder Funktion aber ohne das Schlüsselwort static definiert. Diese Variable ist im gesamten Programm sichtbar und darf nur einmal definiert werden jedoch auch beliebig oft deklariert.<br />
Das mit dem extern hat folgendes auf sich:<br />
eine lokale Variable die ohne gleichzeitige initialisierung eingeführt wird ist KEINE gleichzeitige Definition. Eine globale variable ohne gleichzeitige Initialisierung wird automatisch mit 0 initialisiert und stellt somit eine Definition dar. Will man jetzt eine Programmglobale Variable, die in Modul A DEFINIERT wurde auch in Modul B verwenden, dann muss man sie dort DEKLARIEREN.<br />
Und hier kommt das Schlüsselwort extern ins Spiel. Es sagt aus das eine Globale Variable nur deklariert werden soll, also nicht definiert wird. Würde man in Modul B das schlüsselwort extern vergessen, so wäre das eine Neueefinition also ein Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102872</guid><dc:creator><![CDATA[TomTom85]]></dc:creator><pubDate>Mon, 24 Jul 2006 04:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 06 Aug 2006 11:39:16 GMT]]></title><description><![CDATA[<p>thx tomtom deine erklärung hat mir sehr geholfen! <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="🙂"
    /><br />
aber wenn mna die variable extern deklariert, kann man sie doch in mehreren dateien benutzen oder nicht, nicht nur wie in deinem beispiel in modul a und modul b oder wie?<br />
ich probioer gerade n kleines direct x prog zu schreiben. die extern variablen musste ich alle nur 1 mal als extern deklarieren, und kann sie in allen moduklen benutzen. eine extern variable allerdings blcojkt, und zwar der<br />
LPDIRECT3DDEVICE9 Zeiger auf die schnittstelle...<br />
wenn ich den dann in anderen dateien auch als extern deklariere läuft der zieger da auch...<br />
weshalb muss ich den zeiger aber mehrmals deklarieren??</p>
<p>thx &amp; mfg! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111478</guid><dc:creator><![CDATA[JossBoss]]></dc:creator><pubDate>Sun, 06 Aug 2006 11:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Sun, 06 Aug 2006 11:40:09 GMT]]></title><description><![CDATA[<p>JossBoss schrieb:</p>
<blockquote>
<p>thx tomtom deine erklärung hat mir sehr geholfen! <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="🙂"
    /><br />
aber wenn mna die variable extern deklariert, kann man sie doch in mehreren dateien benutzen oder nicht, nicht nur wie in deinem beispiel in modul a und modul b oder wie?</p>
</blockquote>
<p>Hallo,<br />
Allgemein lässt sich sagen: Wenn du eine globale Variable foo vom Typ T, die du im Modul &quot;a&quot; definiert hast, in den Modulen b, c, d, ..., z benutzen möchtest, musst du in diesen jeweils ein</p>
<pre><code class="language-cpp">extern T foo;
</code></pre>
<p>vor der ersten Benutzung derselben schreiben.</p>
<p>edit:<br />
Meistens macht man es dann allerdings so (insbesondere bei mehreren globalen Variablen), dass man die globale(n) Variable(n) in irgendeinem Modul definiert und desweiteren einen Header (z.B. my_global_vars.hpp) verwendet, in welchen man</p>
<pre><code class="language-cpp">extern T foo;
</code></pre>
<p>schreibt. Diesen Header bindet man nun über #include &quot;my_global_vars.hpp&quot; in jedem Modul ein, welches die globale Variable foo benutzen soll.</p>
<p>Gruß, Caipi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111486</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 06 Aug 2006 11:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Mon, 07 Aug 2006 07:37:06 GMT]]></title><description><![CDATA[<p>thx jeztt hab ichs noch besser geschnallt ;-),<br />
nur noch etwas, haben die foo's dann immer in jedem modul den gleichen wert ja oder? den von der letzten definition wenn ich das recht verstehe.</p>
<p>thx &amp; mfg! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1111991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1111991</guid><dc:creator><![CDATA[JossBoss]]></dc:creator><pubDate>Mon, 07 Aug 2006 07:37:06 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen global und extern ? on Mon, 07 Aug 2006 12:17:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>JossBoss schrieb:</p>
<blockquote>
<p>nur noch etwas, haben die foo's dann immer in jedem modul den gleichen wert ja oder? den von der letzten definition wenn ich das recht verstehe.</p>
</blockquote>
<p>Du kannst nicht sagen, &quot;die foo's&quot;. Es handelt sich hierbei ja immer um die _gleiche_ globale Variable foo. Sie enthält genau den Wert, den du ihr _zuletzt_ zugewiesen hast, egal von welchem Modul aus du dies getan hast. (Das Schlüsselwort const mal außen vorgelassen).</p>
<p>Gruß, Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1112191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1112191</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Mon, 07 Aug 2006 12:17:22 GMT</pubDate></item></channel></rss>