STL in C verwenden?
-
Ist es möglich die STL in einem C-File zu verwenden?
test.c:
#include <stdlib.h> #include <vector> using namespace std; int main(int argc, char* argv[]) { vector<int> n_vector; return 1; }
So geht´s mal nicht.
-
die STL wurde mit Sprachfeatures aus C++ geschrieben (z. B. Templates) die es in C einfach nicht gibt. Also nein, du kannst die STL in reinen C Programmen nicht verwenden.
-
du könntest z.b. sowas verwenden: http://sglib.sourceforge.net/
-
bedeutet das dann, dass ich ganz grundsätzlich keine Chance habe, aus einem C-Programm heraus C++ Bibliotheken zu verwenden, konkret denke ich z.B. an die xerces-c Bibliotheken des Apache Projekts (http://xerces.apache.org/).
-
Darf man fragen wozu das gut sein soll ?
Benutz doch gleich ne *.cpp Dateierweiterung und nen C++ Compiler.Du könntest aber auch deine C++ Funtionen 'C-kompatibel' machen.
Prototypen deklarieren, die auch in C erlaubt sind:#include <string> #include <iostream> using namespace std; extern "C" void test() { string str("Hello C"); cout << str << endl; }
Die obige Funktion lässt sich z.B. als statische Bibliothek speichern. Die kannst du dann aus deinem C Programm aufrufen.
-
B.B. schrieb:
...
Die obige Funktion lässt sich z.B. als statische Bibliothek speichern. Die kannst du dann aus deinem C Programm aufrufen.Naja, speichern ist schon doof beschrieben. Kompilieren trifft das schon eher.
-
"wozu ist das gut". Naja, ist halt nicht grüne Wiese, sondern ein existierendes ANSI-C Projekt und da muss jetzt ein neue Komponente dazu, die unter anderem Daten aus einem XML File parsed, die im "Alt" C-Programm verarbeitet werden.
Den Tipp mit der Bibliothek probiere ich aus. Danke!
-
Torben schrieb:
"wozu ist das gut". Naja, ist halt nicht grüne Wiese, sondern ein existierendes ANSI-C Projekt und da muss jetzt ein neue Komponente dazu, die unter anderem Daten aus einem XML File parsed, die im "Alt" C-Programm verarbeitet werden.
es gibt auch ohne ende in C geschriebene xml-parser.