Heim > Backend-Entwicklung > C++ > Wann sollten Sie „nullptr' in C verwenden?

Wann sollten Sie „nullptr' in C verwenden?

Susan Sarandon
Freigeben: 2024-11-09 09:38:02
Original
256 Leute haben es durchsucht

When Should You Use `nullptr` in C  ?

Wann ist nullptr zu verwenden?

In C-Code können Zeiger auf konzeptionell äquivalente Werte initialisiert werden: nullptr, NULL oder 0. Während diese Alle Werte weisen auf einen Nullzeiger hin. nullptr bietet mehrere Vorteile.

Überladene Funktion Aufruf

Berücksichtigen Sie die folgenden überladenen Funktionen:

void f(char const *ptr);
void f(int v);
Nach dem Login kopieren

Ohne nullptr würde der folgende Aufruf zu Mehrdeutigkeiten führen:

f(NULL);  //which function will be called?
Nach dem Login kopieren

Allerdings Die Verwendung von nullptr verdeutlicht den beabsichtigten Funktionsaufruf:

f(nullptr); //first function is called
Nach dem Login kopieren

Template Spezialisierung für nullptr

Zusätzlich ermöglicht nullptr eine Vorlagenspezialisierung speziell für Nullzeiger. Betrachten Sie die folgende Vorlage:

template<typename T, T *ptr>
struct something{};                     //primary template
Nach dem Login kopieren

Die folgende Teilspezialisierung kann für nullptr definiert werden:

template<>
struct something<nullptr_t, nullptr>>{};  //partial specialization for nullptr
Nach dem Login kopieren

Dies ermöglicht die Erstellung einer dedizierten Überladung für die Verarbeitung von nullptr-Argumenten:

template<typename T>
void f(T *ptr);   //function to handle non-nullptr argument

void f(nullptr_t); //an overload to handle nullptr argument!!!
Nach dem Login kopieren
Nach dem Login kopieren

Typabzug für nullptr

In Vorlagen der Typ von nullptr wird als nullptr_t abgeleitet. Dies vereinfacht den Code, wie unten zu sehen:

template<typename T>
void f(T *ptr);   //function to handle non-nullptr argument

void f(nullptr_t); //an overload to handle nullptr argument!!!
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWann sollten Sie „nullptr' in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage