Verknüpfung in Namen mit Dateibereich

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 finden Sie unter Dokumentation zu Visual Studio 2017.

Die folgenden Verknüpfungsregeln gelten für Namen (außer typedef und Enumeratornamen) mit dem Dateibereich:

  • Wenn ein Name explizit als static deklariert wird, verfügt er über interne Verknüpfung und identifiziert ein Programmelement in seiner eigenen Übersetzungseinheit.

  • Enumeratornamen und typedef-Namen haben keine Verknüpfung.

  • Alle anderen Namen mit Dateigültigkeitsbereich haben externe Verknüpfung.

Microsoft-spezifisch

  • Wenn ein Funktionsname mit Dateigültigkeitsbereich explizit als inline deklariert wird, erfolgt die Verknüpfung extern, wenn die Funktion instanziiert wird oder auf ihre Adresse verwiesen wird. Daher kann eine Funktion mit Dateigültigkeitsbereich entweder eine interne oder eine externe Verknüpfung besitzen.

Ende Microsoft-spezifisch

In folgenden Fällen verfügt eine Klasse über interne Verknüpfung:

  • Sie verwendet keine C++-Funktionalität (z. B. Zugriffssteuerung, Memberfunktionen, Konstruktoren, Destruktoren usw.).

  • Sie wird nicht in der Deklaration eines anderen Namens mit externer Verknüpfung verwendet. Diese Einschränkung bedeutet, dass Objekte vom Klassentyp, die an Funktionen mit externer Verknüpfung übergeben werden, eine externe Verknüpfung der Klasse verursachen.

Programm und Verknüpfung

Anzeigen: