<?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 #define]]></title><description><![CDATA[<p>Hallo,</p>
<p>kurze Frage zu meinem Verständnis:</p>
<p>3 Dateien:</p>
<p>main.cpp<br />
#include &quot;test.h&quot;<br />
#define DEBUG<br />
// #include &quot;test.h&quot; // habs auch mal an dieser stelle versucht<br />
test.cpp</p>
<p>test.h<br />
#ifdef DEBUG<br />
machdies<br />
#endif</p>
<p>Hab das jetzt mal ohne code blocks geschrieben, ich glaube es ist auch so zu erkennen . Ist ja nicht viel Code und geht ja nur ums prinzip.</p>
<p>Also warum wird &quot;machdies&quot; nicht ausgeführt ?<br />
Ist DEBUG nur in der Datei definiert in der es steht, also in der main.cpp ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170554/frage-zu-define</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 03:33:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170554.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Jan 2007 12:16:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 12:16:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kurze Frage zu meinem Verständnis:</p>
<p>3 Dateien:</p>
<p>main.cpp<br />
#include &quot;test.h&quot;<br />
#define DEBUG<br />
// #include &quot;test.h&quot; // habs auch mal an dieser stelle versucht<br />
test.cpp</p>
<p>test.h<br />
#ifdef DEBUG<br />
machdies<br />
#endif</p>
<p>Hab das jetzt mal ohne code blocks geschrieben, ich glaube es ist auch so zu erkennen . Ist ja nicht viel Code und geht ja nur ums prinzip.</p>
<p>Also warum wird &quot;machdies&quot; nicht ausgeführt ?<br />
Ist DEBUG nur in der Datei definiert in der es steht, also in der main.cpp ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211331</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Wed, 17 Jan 2007 12:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 13:29:20 GMT]]></title><description><![CDATA[<p>Das hat zwar nichts mit .Net zu tun, aber:</p>
<p>Ein #define-Name gilt von der Stelle, wo er steht, bis zum Ende der Übersetzungseinheit (oder zum #undef), das schließt die per #include eingebundenen Header mit ein. Also sollte 'machdies' eigentlich ausgeführt (bzw. übersetzt) werden, wenn du deinen Header <strong>nach</strong> dem define eingebunden hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211368</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 17 Jan 2007 13:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 15:57:44 GMT]]></title><description><![CDATA[<p>Ok,</p>
<p>vielleicht verschiebt es ja ein Mod mal nach C++<br />
aber eigentlich ist es ja bei .NET auch so, jdenfalss bei mir.</p>
<p>Ich geb Dir hier aber mal ein Bsp.:</p>
<p>main.cpp</p>
<pre><code class="language-cpp">// hier ist DEBUG definiert,
// vor dem #include der Test.h Datei

#define DEBUG

#include &lt;iostream&gt;
#include &quot;Test.h&quot;

using namespace std;

int main()
{
	CTest::testfunc_inline();

	CTest::testfunc();

	system(&quot;Pause&quot;);
}
</code></pre>
<p>Test.h</p>
<pre><code class="language-cpp">#pragma once

class CTest
{
public:
	CTest(void);
	static void testfunc_inline()
	{
		#ifdef DEBUG
			std::cout &lt;&lt; &quot;Inline ist DEBUG definiert.&quot; &lt;&lt; std::endl;
		#endif
	}

	static void testfunc();

public:
	~CTest(void);
};
</code></pre>
<p>Test.cpp</p>
<pre><code class="language-cpp">#include &quot;Test.h&quot;

CTest::CTest(void)
{
}

CTest::~CTest(void)
{
}

void CTest::testfunc()
{
	#ifdef DEBUG
		std::cout &lt;&lt; &quot;Debug ist auch in testfunc definiert.&quot; &lt;&lt; std::endl;
	#endif
}
</code></pre>
<p>Forführeffekt...<br />
es kommt die Ausgabe : &quot;Inline ist DEBUG definiert.&quot;</p>
<p>Also ist da schon mal DEBUG noch definiert.<br />
Aber die andere wird nicht ausgeführt ?</p>
<p>Mach ich da was falsch ?<br />
Wei muss das richtig lauten ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211472</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Wed, 17 Jan 2007 15:57:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:02:25 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211478</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:17:52 GMT]]></title><description><![CDATA[<p>wenn du die option deinem compiler übergibst, sollte sie eigentlich in allen einheiten zur verfügung stehen. beim gcc geht das z.b. mit dem parameter -D[macroname], also in dem fall dann gcc -DDEBUG ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211487</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:32:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>erst mal danke fürs verschieben Jochen !</p>
<p>Ok,</p>
<p>dsa mit dem Compiler hab ich auch probiert</p>
<p>gcc -DDEBUG</p>
<p>geht gar nicht, da bekomme ich ne Fehlermeldung :</p>
<blockquote>
<p>Fehler 2 fatal error LNK1104: Datei &quot;gcc.obj&quot; kann nicht geöffnet werden. define</p>
</blockquote>
<p>und mit -DDEBUG tut sich leider auch nichts ?</p>
<p>Übrigens wollte ich das auch nicht über die Eigenschaften machen, das mal vorweg genommen.<br />
Ich hatte im Delphi 7 zum Debuggen immer unter</p>
<p>Projekt-&gt;Optionen-&gt;Linker-&gt;(EXE und DLL Optionen) &quot;Textbildschirm-Anwendung&quot;</p>
<p>nen Haken reingemacht. Dafür hatte ich ne Funktion namens Debug, der nen String übergeben wird welcher dann in dem Dos-Fenster ausgegeben werden kann.<br />
Das war manchmal echt Hilfreich !!</p>
<p>Gibts aber ( anscheinend ) leider in Visual Studio 2005 Prof nicht oder doch ?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211504</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:38:57 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &quot;Test.h&quot; 

CTest::CTest(void) 
{ 
} 

CTest::~CTest(void) 
{ 
} 

void CTest::testfunc() 
{ 
    #ifdef DEBUG 
        std::cout &lt;&lt; &quot;Debug ist auch in testfunc definiert.&quot; &lt;&lt; std::endl; 
    #endif 
}
</code></pre>
<p>In dieser Einheit ist NICHTS was DEBUG definiert. Bitte im Grundlagenbuch mal unter PreCompiler und #define nachschlagen.</p>
<p>gcc ist ein Compiler. Wie Du da jetzt auf die Idee kommst irgendwo gcc -DEBUG im Projekt einzutragen weiß ich nicht.</p>
<p>Ich tippe darauf das Du nach wie vor .Net machst, nutze mal die Suchfunktion. Es gibt dort einen schönen Beitrag, der Dir zeigt wie Du für die WinForms anwendung eine Konsole registrieren kannst und Daten ausgeben kannst.</p>
<p>Btw.: Wenn Dir Delphi so gefallen hat, mach doch da einfach weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211510</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:40:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habs gerade gefunden,</p>
<p>1. Mein Fehler, ich hatte es in den Linker einstellungen<br />
2. Korrekt ist es unter</p>
<p>Projekt-&gt;Eigenschaften-&gt;Konfigurationseigenschaften-&gt;C/C++-&gt;Befehlszeile</p>
<p>und dort muss es</p>
<p>/D &quot;DEBUG&quot;</p>
<p>heißen,</p>
<p>dann gehts <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>
<p>Ok, aber das was es in Delphi gibt hab ich noch nicht gefunden<br />
aber ich suche noch <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>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211513</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Wed, 17 Jan 2007 16:50:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Knuddlbaer schrieb:</p>
<blockquote>
<p>Wie Du da jetzt auf die Idee kommst irgendwo gcc -DEBUG im Projekt einzutragen weiß ich nicht.</p>
</blockquote>
<p>thordk schrieb:</p>
<blockquote>
<p>wenn du die option deinem compiler übergibst, sollte sie eigentlich in allen einheiten zur verfügung stehen. beim gcc geht das z.b. mit dem parameter -D[macroname], also in dem fall dann <em><strong>gcc -DDEBUG</strong></em> ...</p>
</blockquote>
<p>@Knuddelbaer : Wer lesen kann ist klar im Vorteil oder wie sagst du immer ?</p>
<p>Knuddlbaer schrieb:</p>
<blockquote>
<p>Btw.: Wenn Dir Delphi so gefallen hat, mach doch da einfach weiter.</p>
</blockquote>
<p>@Knuddelbaer : Ich weiß ja nun das Dir Anfänger auf den Keks gehen und ich Dich schon ne Weile nerven aber wegen Dir werde ich nicht wieder mit Delphi weitermachen !<br />
Hab Dir schon mal gesagt .. wenn dir meine Beiträge nicht passen dann ignorier sie einfach aber lass endlich mal deine blöden Postings!<br />
Das geht mir nun langsam auf den Keks. Jedesmal das gleiche mit Dir und deinen Antworten !</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211523</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Wed, 17 Jan 2007 16:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Thu, 18 Jan 2007 07:27:15 GMT]]></title><description><![CDATA[<p>STF-DIR schrieb:</p>
<blockquote>
<p>thordk schrieb:</p>
<blockquote>
<p>wenn du die option deinem compiler übergibst, sollte sie eigentlich in allen einheiten zur verfügung stehen. beim gcc geht das z.b. mit dem parameter -D[macroname], also in dem fall dann <em><strong>gcc -DDEBUG</strong></em> ...</p>
</blockquote>
</blockquote>
<p>Dann lies doch mal bitte den kompletten Satz, den du da zitiert hast - diese Schreibweise gilt, wenn du den GCC als Compiler verwendest. Beim MSVC kannst du auch in den Projekteinstellungen angeben, welche Makros vordefiniert sein sollen (und normalerweise definiert der DEBUG schon, wenn du einen Debug-Build anordnest).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211730</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 Jan 2007 07:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu #define on Thu, 18 Jan 2007 09:37:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab ich mir mitlerweile nochmal angesehen.<br />
Deswegen kann man das trotzdem in nem anderen Ton ausdrücken oder?</p>
<p>Anere maulen doch auch nicht ständig rum.</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211825</guid><dc:creator><![CDATA[STF-DIR]]></dc:creator><pubDate>Thu, 18 Jan 2007 09:37:57 GMT</pubDate></item></channel></rss>