Article View: de.comp.lang.c++
Article #959Re: C und C++
From: J. Jager
Date: Tue, 05 Dec 1995 13:40
Date: Tue, 05 Dec 1995 13:40
38 lines
1687 bytes
1687 bytes
Hallo,
Zu meinem Problem gabst du folgenden Loesungsvorschlag:
----------------------------------------------------------------------
Damit eine C++-Funktion von C aus aufrufbar ist, muss 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 */
-------------------------------------------------------------------------
Ich habe das ausprobiert. Das Kompilieren und Linken klappt gut. Leider funktioniert
das Programm nicht, wenn funk.cpp zur Ausgabe 'cout' in 'funk()' benutzt, dann gibt
es waehrend der Laufzeit des Programmes einen Bus error! Mit 'printf' dagegen laeuft
es
problemlos.
Darf die Funktion 'funk.h' nur reinen C-Code enthalten, da sie als extern "C"
deklariert wurde ?
Gruss
Isi
Technical Details
Message-ID:
<4a1i40$j7n@zdi.informatik.uni-stuttgart.de>Path:
arc1-ca.pugleaf.net!news.informatik.uni-stuttgart.de!newsReferences:
<49kk48$7f9@zdi.informatik.uni-stuttgart.de> <49osoi$l3p@news00.btx.dtag.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.informatik.uni-stuttgart.de!news From: "J. Jager" <jager> Newsgroups: de.comp.lang.c++ Subject: Re: C und C++ Date: 5 Dec 1995 13:40:16 GMT Organization: Informatik, Uni Stuttgart, Germany Message-ID: <4a1i40$j7n@zdi.informatik.uni-stuttgart.de> References: <49kk48$7f9@zdi.informatik.uni-stuttgart.de> <49osoi$l3p@news00.btx.dtag.de> NNTP-Posting-Host: ravioli.informatik.uni-stuttgart.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 1.1N (X11; I; HP-UX A.09.03 9000/715) To: Krause@btx.dtag.de X-URL: news:49osoi$l3p@news00.btx.dtag.de