Article View: de.comp.lang.c++
Article #33Verwendung von altem C-Code in C++
From: Ernoe Kovacs
Date: Thu, 27 Aug 1992 08:47
Date: Thu, 27 Aug 1992 08:47
38 lines
1757 bytes
1757 bytes
Hallo,
eine der Vorteile von C++ ist die Weiterverwendung von alten C-Code.
Dabei sind wir jetzt auf ein grosses Probelm gestossen. In vielen
alten C-Programmen werden in den Header-files keine Prototypes
fuer Funktionen angegebn. Die Deklaration sieht ungefaehr so aus:
extern int foo()
Die Definition im C-File sieht dann so aus:
int foo (a,b,c)
int a;
char b;
int c;
(Habe ich Deklaration und Definition jetzt richtigherum benutzt ?)
Nur leider fasst unser C++ Compiler die Deklaration foo() als
eine Funktion ohne Parameter auf und meldet dann Fehler ohne Ende.
(Natuerlich haben wir ein extern "C" { ...} um das include statement.
a) Viele C++ Buecher sagen, diese Inkompatibilitaet sei so gewollt.
Sie bieten auch irgendwelche Loesungen mit Hilfe des Preprocessors
(#ifdef _cpluplus ...) an. Eine solche Loesung waere extrem unguenstig,
da wir eine dreistellige Zahl von unterschiedlichen header-Files haben.
b) Gibt es vielleicht ein Tool, mit dem man die Header-Files anpassen kann?
(Geringe Hoffnung...)
c) Warum wird das den gemacht... Auch ANSI-C schreibt Protoypen aus
Kompatibilitaetsgruenden nicht vor.
d) Gibt es C++ Compiler, die die alten Deklarationen anstandslos
verkraften?
Gruss
- Ernoe
Technical Details
Message-ID:
<KOVACS.92Aug27094714@orgel.informatik.uni-stuttgart.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!news.belwue.de!news.uni-stuttgart.de!ifi!kovacsShow Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!news.belwue.de!news.uni-stuttgart.de!ifi!kovacs From: kovacs@informatik.uni-stuttgart.de (Ernoe Kovacs) Subject: Verwendung von altem C-Code in C++ Message-ID: <KOVACS.92Aug27094714@orgel.informatik.uni-stuttgart.de> Sender: news@informatik.uni-stuttgart.de Organization: IPVR, Uni Stuttgart, Germany Distribution: de Date: Thu, 27 Aug 1992 08:47:14 GMT Lines: 38