Lowlevel

Lowlevel => Softwareentwicklung => Thema gestartet von: Programm Noob am 12. November 2009, 15:27

Titel: von C auf C++ Funktionen zugreifen.
Beitrag 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
Titel: Re: von C auf C++ Funktionen zugreifen.
Beitrag von: Cool-Andy am 12. November 2009, 15:55
Also,
wenn ich das jetzt richtig verstanden habe:
C++ in C --> meines Wissens nicht möglich!
C in C++ --> kein Problem!
Titel: Re: von C auf C++ Funktionen zugreifen.
Beitrag von: Jidder am 12. November 2009, 16:04
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
Titel: Re: von C auf C++ Funktionen zugreifen.
Beitrag von: Cool-Andy am 12. November 2009, 16:38
Warum machst du dier überhaupt den Aufwand?
Nimm doch einfach C!  :wink:
Titel: Re: von C auf C++ Funktionen zugreifen.
Beitrag von: Programm Noob am 12. November 2009, 20:57
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
Titel: Re: von C auf C++ Funktionen zugreifen.
Beitrag von: bluecode am 02. December 2009, 15:25
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.