<?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 Variable]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein projekt besteht aus 4 Dateien. dat1.c, dat2.c,dat3.c,dat4.c</p>
<p>Im modul dat1.c definiere ich eine globale Variable int global;</p>
<p>können die anderen 3 dateien jetzt auch auf sie zugreifen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269176/globale-variable</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 07:56:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269176.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Jun 2010 13:25:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 13:25:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein projekt besteht aus 4 Dateien. dat1.c, dat2.c,dat3.c,dat4.c</p>
<p>Im modul dat1.c definiere ich eine globale Variable int global;</p>
<p>können die anderen 3 dateien jetzt auch auf sie zugreifen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915089</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 13:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 13:29:15 GMT]]></title><description><![CDATA[<p>Ja.</p>
<p>Du musst nur eine Header Datei in allen .c Dateien einbinden und dort die Variable bekanntmachen:</p>
<pre><code class="language-cpp">extern int global;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1915091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915091</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 20 Jun 2010 13:29:15 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 13:29:58 GMT]]></title><description><![CDATA[<p>In eine Header Datei:<br />
extern typ bezeichner;</p>
<p>In <strong>eine</strong> Source Datei:<br />
typ bezeichner;</p>
<p>Überall wo du die Variable nutzen willst:<br />
#include &quot;header&quot;</p>
<p>Ist allerdings schlechter Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915093</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 20 Jun 2010 13:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 13:31:05 GMT]]></title><description><![CDATA[<p>schade dass man die headerdatei jeweils in allen 4 dateien einbinden muss.<br />
Wäre schöner der compiler würde alle header module selbst durchsuchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915094</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 13:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 13:33:06 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>schade dass man die headerdatei jeweils in allen 4 dateien einbinden muss.<br />
Wäre schöner der compiler würde alle header module selbst durchsuchen.</p>
</blockquote>
<p>Ne, waere garnicht schoen. Dann waeren die Kompilierzeiten so hoch dass man keinen Spass mehr haette.</p>
<p>Das Modulsystem von C++ ist leider etwas betagt <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=":/"
      alt="😕"
    /></p>
<p>Deshalb hat man fuer sowas ja eine precompiled Headerdatei in der die am meissten verwendetsten Deklarationen stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915096</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 20 Jun 2010 13:33:06 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 15:57:24 GMT]]></title><description><![CDATA[<p>ich packe meine Klasse Test in eine header Datei mit namen datei.h<br />
Die Implementierung der klasse findet in der datei mit namen datei.c statt.</p>
<p>Dazu gibt es die Datei uebung.c in der auch die main ist.<br />
IN der datei uebung.c brauche ich nur die header datei datei.h einbinden.</p>
<p>Meine Frage.</p>
<p>woher weißt der compiler wo die IMplementierung stattgefunden hat ?<br />
ER weiß ja eigentlich nicht dass sie in der datei.c ist . er muss praktisch<br />
alle quelledateien durchsuchen um sie zu finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915178</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 15:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 16:05:01 GMT]]></title><description><![CDATA[<p>Ne kurze Frage dazu,<br />
kann man nicht in jede Source-Datei einfach &quot;extern typ bezeichner&quot; schreiben?<br />
Header-Datei wär zwar einfacher, aber frage rein aus verständnistechnischen Gründen <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>Gruß freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915187</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Sun, 20 Jun 2010 16:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 16:10:54 GMT]]></title><description><![CDATA[<p>Ja, kannst du.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915195</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 20 Jun 2010 16:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 17:23:51 GMT]]></title><description><![CDATA[<p>ok dankeschön <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/1915247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915247</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Sun, 20 Jun 2010 17:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 17:29:48 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>woher weißt der compiler wo die IMplementierung stattgefunden hat ?</p>
</blockquote>
<p>Das macht er ganz faul. Er nimmt einfach an, dass du alles korrekt implementiert hast.</p>
<p>Wenn er nun eine .cpp Datei kompiliert, dann macht er folgendes:<br />
er parst die Datei und alle in ihr eingebundenen Header Dateien und erstellt dann eine neue Datei (meistens .o oder .obj). In dieser ist ein Inhaltsverzeichnis der Funktionen drinnen.</p>
<p>Wenn man nun ein paar soleche .o Dateien hat, ruft man den Linker auf. Der Linker verknuepft die .o Dateien zu einer Ausfuehrbaren Datei (zB .exe). Dabei liest er alle Inhaltsverzeichnisse. Wenn nun eine Funktion in einer .o Datei aufgerufen wird die nicht in dieser .o Datei definiert ist erkennt das der Linker und durchsucht die Inhaltsverzeichnisse.</p>
<p>Wenn du zB folgenden Code kompilierst:</p>
<pre><code class="language-cpp">int main() {
  ich_bin_ein_fehler();
}
</code></pre>
<p>wirst du keinen Compilerfehler sondern einen Linkerfehler bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915250</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 20 Jun 2010 17:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 17:36:39 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>woher weißt der compiler wo die IMplementierung stattgefunden hat ?<br />
ER weiß ja eigentlich nicht dass sie in der datei.c ist.</p>
</blockquote>
<p>Das muss er nicht wissen. Er kann Code generieren, wo Funktionsaufrufe von Funktionen drinstehen, deren Definitionen unbekannt sind. Dafür gibt es dann &quot;Platzhalter&quot;. Der Linker verknotet das dann später schon richtig.</p>
<p>Das Konzept nennt sich &quot;getrennte Übersetzung&quot; und sollte eines der ersten Dinge sein, die man aus einem guten C oder C++ Buch lernt.</p>
<p>kk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915255</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 20 Jun 2010 17:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 18:43:19 GMT]]></title><description><![CDATA[<p>aha. Wie kann man denn eine Datei getrennt übersetzen.<br />
Wenn ich im Visual Studio auf Projekt erstellen gehe , dann wird das<br />
ganze projekt übersetzt und nicht nur eine datei</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915306</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 18:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 18:50:37 GMT]]></title><description><![CDATA[<blockquote>
<p>Dafür gibt es dann &quot;Platzhalter&quot;. Der Linker verknotet das dann später schon richtig.</p>
</blockquote>
<p>Letztendlich muss er dann trotzdem in jede .c datei reinschaun ob<br />
dort die Funktion oder die Klassen Methoden definiert sind.<br />
Andere Möglichkeit gibts ja nicht. Es werden ja immer die .h dateien<br />
eingebunden. Und dort ist kein Verweis auf die IMplementierungsdatei sprich<br />
.c datei drin .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915310</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 18:50:37 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 19:04:07 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Letztendlich muss er dann trotzdem in jede .c datei reinschaun ob</p>
</blockquote>
<p>Nein, siehe meinen Beitrag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915314</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 20 Jun 2010 19:04:07 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 19:05:55 GMT]]></title><description><![CDATA[<p>jetzt versteh ich auch die Bedeutung von folgendem</p>
<pre><code class="language-cpp">datei.h

extern int x
</code></pre>
<p>mit dem extern zwinge ich den programmierer in irgendeiner<br />
anderen Datei diese Variable x zu definieren. Ich will praktisch<br />
dass es eine variable mit diesem namen gibt. Anderen grund seh ich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915316</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 19:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 19:08:22 GMT]]></title><description><![CDATA[<p>ja der compiler erstellt ein Inhaltsverzeichnis. Aber der linker<br />
muss alle Inhaltsverzeichnisse durchschauen. Ist ja auch nichts anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915318</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 19:08:22 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 19:22:51 GMT]]></title><description><![CDATA[<p>weiß niemand wie man eine einzelne datei kompiliert und nicht<br />
das ganze Projekt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915327</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Sun, 20 Jun 2010 19:22:51 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 20:20:54 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>weiß niemand wie man eine einzelne datei kompiliert und nicht<br />
das ganze Projekt ?</p>
</blockquote>
<p>Klar</p>
<pre><code>g++ -c soundso.cpp
</code></pre>
<p>(Mit dem Microsoft-Compiler geht das sicherlich ähnlich)</p>
<p>Aber es ist ja gerade der Witz an einer guten IDE, dass diese Dir diesbezgl einiges an Arbeit abnimmt und automatisch nur das neu kompiliert, was neu kompiliert werden muss.</p>
<p>Du solltest mal den Microsoft-Compiler in der Kommandozeile bedienen und das mal Schritt für Schritt nachmachen ... also cpp --&gt; Objekt-Datei --&gt; EXE. Soweit ich weiß, ist heißt der Compiler <code>cl.exe</code> . Ich kenn die Optionen da aber nicht für... RTFM! :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915358</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 20 Jun 2010 20:20:54 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variable on Sun, 20 Jun 2010 21:47:34 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>weiß niemand wie man eine einzelne datei kompiliert und nicht<br />
das ganze Projekt ?</p>
</blockquote>
<p>Ctrl-F7</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1915405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1915405</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sun, 20 Jun 2010 21:47:34 GMT</pubDate></item></channel></rss>