Mir unbekannter Quellcode
-
Hallo zusammen.
Kann mir einer verraten was diese Quellcodezeile bedeutet:
extern "C" { extern int __us_rsthread_malloc; }Ich kenne extern "C" nur als Präfix vor einem Funktionsnamen.
Danke für's reinschauen.
Gruss
_Bongo
-
das extern "C" hat dem grunde nach dieselbe funktion wie bei funktionen - das objekt wird C-kompatibel gelinkt, d.h. der name des objekts, so wie ihn der linker sieht, entspricht den regeln für objekte in C (bedeutet auf den meisten plattformen einen vorangestellten unterstrich). in C++ werden nicht nur funktionsnamen "gemangled" (hier ist die notwendigkeit sofort offensichtlich wegen überladung), sondern auch alle anderen objekte mit static storage - 2 variablen können denselben namen haben, wenn sie sich in verschiedenen namensräumen befinden. hätten beide variablen aber extern "C" linkage, so verweisen sie notwendig auf dasselbe objekt.