Maison > développement back-end > C++ > le corps du texte

Devriez-vous vérifier explicitement les pointeurs NULL dans C/C ?

Susan Sarandon
Libérer: 2024-10-31 02:03:29
original
185 Les gens l'ont consulté

Should You Explicitly Check for NULL Pointers in C/C  ?

Vérification des pointeurs NULL en C/C : comparaison des méthodes

Dans les revues de code, le sujet de la vérification des pointeurs NULL revient souvent. Un contributeur préconise l'utilisation de comparaisons explicites avec NULL :

int * some_ptr;
// ...
if (some_ptr == NULL)
{
    // Handle null-pointer error
}
else
{
    // Proceed
}
Copier après la connexion

Une autre partie estime que la vérification implicite de NULL en utilisant la variable pointeur dans une instruction if est tout aussi claire :

int * some_ptr;
// ...
if (some_ptr)
{
    // Proceed
}
else
{
    // Handle null-pointer error
}
Copier après la connexion

Ceci cette dernière méthode est préférée pour plusieurs raisons. Premièrement, il évite le risque d'introduire des erreurs logiques telles que l'attribution de NULL à la variable pointeur au lieu de la comparer :

if (some_ptr = NULL)
Copier après la connexion

Deuxièmement, il est compatible avec les classes C comme unique_ptr, shared_ptr et auto_ptr qui agissent comme pointeurs mais fournissent des conversions en booléen. Une comparaison explicite avec NULL nécessiterait une conversion en pointeur, ce qui peut avoir des effets secondaires ou être moins efficace.

Les comparaisons explicites avec NULL sont inutilement verbeuses et introduisent une confusion potentielle. Le langage C indique explicitement que les valeurs non nulles dans des contextes booléens sont vraies et que les valeurs nulles sont fausses. L'utilisation de vérifications implicites pour NULL est claire et concise, exprimant l'intention du code sans spécificité redondante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal