Heim >Backend-Entwicklung >C++ >Wie lösen C 17-Inline-Variablen externe Verknüpfungsprobleme?
Inline-Variablen in C 17 verstehen
Im Jahr 2016 führte das C Standards Committee Inline-Variablen als Teil des C 17-Standards ein. Diese Funktion ermöglicht die Erstellung externer Verknüpfungsvariablen, die in einer Header-Datei definiert und über mehrere Übersetzungseinheiten hinweg referenziert werden können, ohne dass Verknüpfungsfehler auftreten.
Funktionsweise von Inline-Variablen
Der auf eine Variable angewendete Inline-Bezeichner ermöglicht eine externe Verknüpfung, was bedeutet, dass mehrere Definitionen der Variablen in verschiedenen Übersetzungseinheiten zulässig sind. Wenn mehrere Definitionen vorhanden sind, wählt der Linker eine davon aus und ignoriert die anderen.
Deklarieren, Definieren und Verwenden von Inline-Variablen
Inline-Variablen sollten als statisch deklariert werden und kann in der Klassendefinition oder im Namespace-Bereich definiert werden. Sie können mit einem Initialisierer in Klammern oder gleich oder über eine separate erneute Deklaration ohne Initialisierer initialisiert werden, wenn sie mit dem Bezeichner constexpr deklariert werden. Zum Beispiel:
struct Kath { static inline std::string const hi = "Zzzzz..."; };
Dieser Code deklariert eine statische Inline-Variable mit dem Namen hi in der Kath-Struktur. Die Variable wird mit dem Wert „Zzzzz...“ initialisiert und kann mit Kath::hi von jeder Übersetzungseinheit aus aufgerufen werden, die den Header enthält, in dem sie definiert ist.
Vorteile von Inline-Variablen
Inline-Variablen bieten mehrere Vorteile:
Das obige ist der detaillierte Inhalt vonWie lösen C 17-Inline-Variablen externe Verknüpfungsprobleme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!