Heim >Backend-Entwicklung >C++ >NULL vs. 0 in C: Welcher ist der bessere Nullzeiger?
Zeiger in C: NULL vs. 0
In den Annalen der C-Programmierung tobt die Debatte darüber: Sollten Sie NULL oder 0 verwenden? (Null) für Nullzeiger? Während einige Programmierer an der Tradition der Verwendung von 0 festhalten, schwören andere auf NULL. Doch welcher Ansatz ist wirklich überlegen?
Ursprünglich war NULL in C aufgrund seiner Definition als (void*)0 unbrauchbar. Mit der Einführung von C 11 änderte sich das Spiel jedoch. Jetzt wird NULL explizit als 0 definiert, wodurch es funktional mit seinem numerischen Gegenstück identisch ist.
Befürworter von 0 argumentieren, dass es eine logischere Wahl zum Testen von Wahrheitswerten ist. Wie der bereitgestellte Codeausschnitt zeigt, passt Null natürlich in logische Vergleiche mit Operatoren wie if (p && !q). Die Verwendung von NULL hingegen erfordert explizite Vergleiche mit NULL, es sei denn, Sie gehen ohnehin davon aus, dass NULL gleich 0 ist, was den Zweck der Benennung zunichte macht.
Bjarne Stroustrup, der Erfinder von C, hat sich zu dieser Angelegenheit geäußert: Daraus geht hervor, dass die Wahl zwischen NULL und 0 weitgehend ästhetischer Natur ist. Allerdings bevorzugt er 0, da er Makros lieber vermeidet und mögliche Fehlinterpretationen im Zusammenhang mit NULL zulassen.
Letztendlich ist die Entscheidung zwischen NULL und 0 eine Frage der persönlichen Präferenz. Beide Ansätze haben ihre Vorzüge. Wählen Sie daher denjenigen aus, der am besten zu Ihrem Codierungsstil passt. Es ist jedoch erwähnenswert, dass C 11 das Schlüsselwort nullptr speziell für diesen Zweck eingeführt hat, sodass es aus Gründen der Klarheit und Konsistenz eine Überlegung wert ist.
Das obige ist der detaillierte Inhalt vonNULL vs. 0 in C: Welcher ist der bessere Nullzeiger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!