Lowlevel
Lowlevel => Softwareentwicklung => Thema gestartet von: Programm Noob am 12. November 2009, 15:27
-
Moin
Ich habe jetzt einen kleinen kernel, welcher in c geschrieben ist.
Nun möchte ich aber einige Funktionen gerne in c++ schreiben und wollte fragen ob dies so änlich möglich ist wie in assembler.
Programm Noob
-
Also,
wenn ich das jetzt richtig verstanden habe:
C++ in C --> meines Wissens nicht möglich!
C in C++ --> kein Problem!
-
Beide Richtungen sind möglich.
Einige grundlegende Fragen dazu werden hier ab Punkt 32.4 beantwortet: http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
-
Warum machst du dier überhaupt den Aufwand?
Nimm doch einfach C! :wink:
-
Moin
@Cool-Andy Ich möchte gerne C++ nutzen,weil ich sonst mit c++ programmiert habe, und diese Funktionen gerne in mein OS einbauen würde.
Wenn ich das jetzt so verstanden habe , muss ich nur in meinen c++ Code die Funktion als "Extern "C"" deklarieren. Beispiel:
extern "C" int Funktion(int Wert1, int Wert2);
int Funktion(int Wert1, int Wert2)
{
// Hier istdie Funktion
}
Habe ich das richtig verstanden :?
Programm Noob
-
Ja, du darfst aber natürlich auch keine (nicht-trivial kon/destruierbaren) Strukturen/Klassen als Paramter oder Rückgabewert verwenden. Außerdem solltest du nicht Funktionen die du als extern "C" deklariert überladen, da extern "C" das c++ name mangling für diese Funktion ausschaltet.