<?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[C++ und c vermengen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch ein ziemlicher Neuling in C/C++ und habe eine kleine Frage.</p>
<p>Was muss ich machen, damit ich Funktionen, welche mit C geschrieben sind in meinem C++ Programm verwenden kann. Also was muss explizit in meiner .cpp und derer .h stehen??<br />
Also angenommen ich habe eine <strong>beispiel.c</strong> und <strong>beispiel.h</strong> Datei. Und ich möchte die <strong>beispielfunktion()</strong> verwenden, welche in der .h als <strong>extern void beispielfunktion()</strong> steht.</p>
<p>das mit dem: <strong>extern &quot;C&quot; void beispielfunktion()</strong> klappt bei mir nicht. Da kommt dann: <em>syntax error before string constant</em></p>
<p>wenn ich meine Headerdatei <strong>beispiel.h</strong> mit dem typischen <strong>#ifdef __cplusplus</strong> versehe. Dann kommen Meldungen wie <em>multiple markers</em> und <em>previous declaration</em>..</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214254/c-und-c-vermengen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 17:31:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214254.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 May 2008 11:20:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 11:20:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch ein ziemlicher Neuling in C/C++ und habe eine kleine Frage.</p>
<p>Was muss ich machen, damit ich Funktionen, welche mit C geschrieben sind in meinem C++ Programm verwenden kann. Also was muss explizit in meiner .cpp und derer .h stehen??<br />
Also angenommen ich habe eine <strong>beispiel.c</strong> und <strong>beispiel.h</strong> Datei. Und ich möchte die <strong>beispielfunktion()</strong> verwenden, welche in der .h als <strong>extern void beispielfunktion()</strong> steht.</p>
<p>das mit dem: <strong>extern &quot;C&quot; void beispielfunktion()</strong> klappt bei mir nicht. Da kommt dann: <em>syntax error before string constant</em></p>
<p>wenn ich meine Headerdatei <strong>beispiel.h</strong> mit dem typischen <strong>#ifdef __cplusplus</strong> versehe. Dann kommen Meldungen wie <em>multiple markers</em> und <em>previous declaration</em>..</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517549</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 11:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 11:52:15 GMT]]></title><description><![CDATA[<p>Du brauchst nichts besonderes tun. In deiner C++ - Datei einfach die C-Header-Datei inkludieren und beim Linken die Implementationsdatei (.c) mitlinken. Ganz genau so, als waeren es C++ Dateien. Schliesslich ist C eine Untermenge von C++ *, alles was gueltiges C ist, ist also auch gueltiges C++ *.</p>
<p>(* Das Kleingedruckte: ausser du verwendest C99-Sachen, dann gehts nicht mehr so einfach, denn in C99 sind Sachen drinnen, die in C++ nicht drinnen sind. C99 ist uebrigens der C-Standard der ISO aus dem Jahr 1999, wenn du das noch nie gehoert hast, ist die Wahrscheinlichkeit sehr gross, dass du keine C99-Features verwendest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517571</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Tue, 27 May 2008 11:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:02:56 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Du brauchst nichts besonderes tun. In deiner C++ - Datei einfach die C-Header-Datei inkludieren und beim Linken die Implementationsdatei (.c) mitlinken. Ganz genau so, als waeren es C++ Dateien. Schliesslich ist C eine Untermenge von C++ *, alles was gueltiges C ist, ist also auch gueltiges C++ *.</p>
</blockquote>
<p>Das stimmt leider überhaupt nicht. Wenn das C-Programm mit einem C-Compiler übersetzt wurde, muss das C++-Programm durch extern &quot;C&quot; mitgeteilt bekommen, dass die Funktion nicht name-mangled wurde.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19529">@Somersault</a>:<br />
Die Fehlermeldung hört sich an als hättest Du extern &quot;C&quot; durch den C-Compiler gejagt, und als hättest Du irgendwelche endifs vergessen. Zeig mehr Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517583</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 12:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:03:11 GMT]]></title><description><![CDATA[<p>danke,</p>
<p>also ich bin jetzt bei der Fehlermeldung <em>undefined reference to beispielfunktion()</em></p>
<p>hab ich da was beim linken falsch gemacht und fehlt beim code was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517584</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 12:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:09:34 GMT]]></title><description><![CDATA[<p>Somersault schrieb:</p>
<blockquote>
<p>danke,</p>
<p>also ich bin jetzt bei der Fehlermeldung <em>undefined reference to beispielfunktion()</em></p>
<p>hab ich da was beim linken falsch gemacht und fehlt beim code was?</p>
</blockquote>
<p>woher sollen wir das wissen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517592</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 27 May 2008 12:09:34 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:25:47 GMT]]></title><description><![CDATA[<p>mein Cpp Programm:</p>
<pre><code>#include &quot;mein_cpp.h&quot;
#include &lt;iostream&gt;
using namespace std;

void Mein_CPP::request(req_hdr *hdr) {

	 cout &lt;&lt; &quot;Methode: request&quot; &lt;&lt; endl;
	 get_answer(hdr); // hier bekomme ich den besagten Fehler	 
}
</code></pre>
<p>.h dazu</p>
<pre><code>#ifndef MEIN_CPP_H
#define MEIN_CPP_H
#include &lt;string&gt;

#include &quot;nur_c.h&quot;

class Mein_CPP {

public:

    void request (req_hdr *hdr);

protected:

private:

};
#endif //MEIN_CPP_H
</code></pre>
<p>die nur_c.h file zur c Funktion:</p>
<pre><code>#ifdef __cplusplus
extern &quot;C&quot; {
#endif

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;math.h&gt;
#include &lt;string.h&gt;
#include &lt;unistd.h&gt;

#include &quot;constants.h&quot;

// keine Ahnung für was das gut, der code ist nicht von mir...
#define bla_bla 300

#define bla_blub 250

// diese funktion will ich
extern void get_answer ( req_hdr  * );

#ifdef __cplusplus
}
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517610</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 12:25:47 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:34:14 GMT]]></title><description><![CDATA[<p>Sieht alles richtig aus. Das C-Programm ist auch wirklich mit einem C-Compiler übersetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517620</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 12:34:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:48:20 GMT]]></title><description><![CDATA[<p>LordJaxom_lg schrieb:</p>
<blockquote>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Du brauchst nichts besonderes tun. In deiner C++ - Datei einfach die C-Header-Datei inkludieren und beim Linken die Implementationsdatei (.c) mitlinken. Ganz genau so, als waeren es C++ Dateien. Schliesslich ist C eine Untermenge von C++ *, alles was gueltiges C ist, ist also auch gueltiges C++ *.</p>
</blockquote>
<p>Das stimmt leider überhaupt nicht. Wenn das C-Programm mit einem C-Compiler übersetzt wurde, muss das C++-Programm durch extern &quot;C&quot; mitgeteilt bekommen, dass die Funktion nicht name-mangled wurde.</p>
</blockquote>
<p>Er hat aber gesagt er haette die .c-Datei ebenfalls. Und dann kann man einfach beide mit dem C++ Compiler kompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517642</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Tue, 27 May 2008 12:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:51:20 GMT]]></title><description><![CDATA[<p>das mit dem linken und compilieren ist in c/c++ ja nicht ganz so trivial, wie bei anderen Programmiersprachen..</p>
<p>aber ich weiß das ich gcc habe und ein makefile, dass mir ebenfalls vorgegeben worden ist.</p>
<p>ob diese Aussagen jetzt hilfreich sind, weiß ich leider nicht <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517646</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 12:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 12:53:57 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Er hat aber gesagt er haette die .c-Datei ebenfalls. Und dann kann man einfach beide mit dem C++ Compiler kompilieren.</p>
</blockquote>
<p>Mitnichten kann man das, auch nicht bei reinem C89. Mit etwas Glück, ja, aber längst nicht immer.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19529">@Somersault</a>:<br />
Schau, ob das C-File mit gcc und das C++-File mit g++ übersetzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517649</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 12:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 13:41:39 GMT]]></title><description><![CDATA[<p>unter discovery options bei eclipse steht &quot;gcc c compiler und gcc c++ compiler&quot;. Das ist das projekt aus der ich die .h file ziehen möchte.</p>
<p>mein cpp projekt wird mit den selben compilern kompeliert, unter settings steht hier noch g++ und weitere pfade (include path's)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517695</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 13:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 13:47:11 GMT]]></title><description><![CDATA[<p>Somersault schrieb:</p>
<blockquote>
<p>unter discovery options bei eclipse steht &quot;gcc c compiler und gcc c++ compiler&quot;.</p>
</blockquote>
<p>Aha. Und?</p>
<blockquote>
<p>Das ist das projekt aus der ich die .h file ziehen möchte.</p>
</blockquote>
<p>Aha.</p>
<p>*seufz*</p>
<p>Okay, probier es bitte mal auf der Kommandozeile:</p>
<pre><code>gcc -o cprog.o cprog.c
g++ -o cppprog.o cppprog.cpp
g++ -o prog cprog.o cppprog.o
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1517703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517703</guid><dc:creator><![CDATA[LordJaxom_lg]]></dc:creator><pubDate>Tue, 27 May 2008 13:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ und c vermengen on Tue, 27 May 2008 15:02:57 GMT]]></title><description><![CDATA[<p>es war ein Linker Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
omg, als noob hat man es nicht einfach.. aber das passiert mir nicht nochmal^^</p>
<p>Danke für die Hilfe!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1517792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1517792</guid><dc:creator><![CDATA[Somersault]]></dc:creator><pubDate>Tue, 27 May 2008 15:02:57 GMT</pubDate></item></channel></rss>