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


  • Mod

    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.


Anmelden zum Antworten