Wenn Sie den C-Code zusammen mit Ihrem C++ - Code als Teil Ihres Projekts kompilieren, sollten Sie nur die Headerdateien wie üblich einfügen und den C++ - Compilermodus verwenden, um den Code zu kompilieren. einige C-Code wird nicht "sauber" mit einem C++ - Compiler kompilieren (zb Verwendung von malloc
muss Casting).
Wenn auf der anderen Seite Sie eine Bibliothek oder einen anderen Code haben, der nicht Teil Ihres Projekts ist, müssen Sie sicherstellen, dass die Header als extern "C"
markiert sind, andernfalls C++ - Namenskonvention für die kompilierten Namen Es werden Funktionen angewendet, die nicht mit der vom C-Compiler verwendeten Namenskonvention übereinstimmen.
Es gibt zwei Möglichkeiten, entweder Sie die Header-Datei selbst bearbeiten, das Hinzufügen
#ifdef __cplusplus
extern "C" {
#endif
... original content of headerfile goes here.
#ifdef __cplusplus
}
#endif
Oder, wenn Sie nicht die Möglichkeit, diese Header zu bearbeiten haben, können Sie dieses Formular benutzen:
#ifdef __cplusplus
extern "C" {
#endif
#include <c_header.h>"
#ifdef __cplusplus
}
#endif
Dieser Abschnitt von C++ - FAQ zum Mischen von C und C++ kann hilfreich sein: http://www.parashift.com/c++-faq/mixing-c-and-cpp.html –
Aktualisierter Link für C++ - FAQ: https://isocpp.org/wiki/faq/mixing-c-and-cpp – Phlucious