Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Sprachverknüpfung C und C++

&pagelevel(3)&pagelevel

Die Programmiersprache C ist die Basis für C++. Einer der großen Vorteile von C++ ist die leichte Benutzbarkeit von in C geschriebenen Bibliotheken.

Allerdings weichen die Implementierungen von C und C++ bezüglich der Behandlung von externen Namen voneinander ab: Im Gegensatz zu C werden in C++ externe Namen für den Binder codiert.

Sollen Funktionen und Daten in C++ und in C (oder anderen Sprachen) gemeinsam benutzt werden, muss die Codierung der externen Namen unterdrückt werden. Das C++-Sprachmittel hierfür lautet:

extern "C" Deklaration;

bzw.

extern "C" {

Deklarationen

}

Im C++-Programm sind extern "C"-Deklarationen erforderlich sowohl für die in C++ definierten als auch für die in C (oder anderen Sprachen) definierten Daten und Funktionen.

Für den Aufruf der Standard-C-Bibliotheksfunktionen aus C++-Quellen sind lediglich die entsprechenden Standard-Include-Dateien (z.B. stdio.h) einzubinden. Diese enthalten die extern "C"-Deklarationen für sämtliche C-Bibliotheksfunktionen.

Bei Sprachverknüpfungen zwischen C und C++ sollten nur C89- bzw. C11-Objekte Verwendung finden.
Verknüpfungen von C++-Objekten mit K&R-C-Objekten sind zwar technisch möglich, jedoch u.U. problematisch (es gelten unterschiedliche Restriktionen bzgl. Funktionsdeklarationen, float-Parameter werden unterschiedlich übergeben etc.).