Heim >Backend-Entwicklung >C++ >NULL vs. 0 in C: Welcher ist der bessere Nullzeiger?

NULL vs. 0 in C: Welcher ist der bessere Nullzeiger?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 19:00:15743Durchsuche

NULL vs. 0 in C  : Which is the Better Null Pointer?

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!

Stellungnahme:
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