Article View: de.comp.lang.c++
Article #940Re: C und C++
From: Karl-Heinz Krause
Date: Sat, 02 Dec 1995 06:46
Date: Sat, 02 Dec 1995 06:46
37 lines
1457 bytes
1457 bytes
Am 30. Nov. 1995 schrieb J. Jager (jager@informatik.uni-stuttgart.de):
> Hallo,
> Ist es moeglich eine Funtkion, die in C++ geschrieben wurde, von C aus
> aufzurufen ? Ich habe die C++-Funtkion uebersetzt und versucht den Objektcode
> zu dem C-Programm zu linken. Doch der Linker meldet sich mit 'unsatisfied
> symbol ...' (damit ist die Funktion gemeint).
Damit eine C++-Funktion von C aus aufrufbar ist, muß sie als extern"C"
deklariert werden. Die sauberste Methode ist die folgende:
/* Datei funk.h */
#ifdef __cplusplus
extern "C" {
#endif
int funk();
#ifdef __cplusplus
}
#endif
// Datei funk.cpp
#include "funk.h"
int funk() { ... } // Definition der Funktion
/* Datei programm.c */
#include "funk.h"
...
i = funk(); /* hier wird funk aufgerufen */
Das #ifdef in funk.h ist erforderlich, weil ein C-Compiler über
extern"C" sehr erstaunt wäre.
Karl-Heinz Krause
Technical Details
Message-ID:
<49osoi$l3p@news00.btx.dtag.de>Path:
arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mailReferences:
<49kk48$7f9@zdi.informatik.uni-stuttgart.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail From: Krause@btx.dtag.de (Karl-Heinz Krause) Newsgroups: de.comp.lang.c++ Subject: Re: C und C++ Date: 2 Dec 1995 06:46:42 GMT Organization: Telekom Online Internet Gateway Message-ID: <49osoi$l3p@news00.btx.dtag.de> References: <49kk48$7f9@zdi.informatik.uni-stuttgart.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause) X-Newsreader: Forte Free Agent 1.0.82