Tout est dans le sujet.
Je voulais savoir quelle était la meilleure syntaxe pour un test avec un pointeur ptr.
Version imprimable
Tout est dans le sujet.
Je voulais savoir quelle était la meilleure syntaxe pour un test avec un pointeur ptr.
Pour moi, aucune différence.
pour la relecture ultérieure je préfère l'écriture à rallonge...ca parle mieux en général!:?
ptr!=0
moi je dirai qu'il vaut meme mieux utiliser != NULL
Ce n'est qu'un format d'écriture car NULL est une constante du préprocesseur remplacé par 0 ...
Quand a la question principale ... il est plus propre de faire ptr!=0 même si cela est fait implicitement par le compilateur pour if(ptr) ( false = 0, true = toute les autres valeurs.. ).Code:
1
2#define NULL 0
Ce n'est qu'un problème d'écriture de code ;) .. pas de comportement..
En même temps mettre if (ptr!=NULL) pour la relecture par quelqu'un d'autre, ca indique clairement que ptr est de type pointeur. Moi je préfère clairement cette version (au lieu de if (ptr) ou de if(ptr!=0))
if(0 != ptr)
if(NULL != ptr)
{
...
}
Si avec if( ptr ) on ne voit pas d'un simple coup d'œil que c'est un pointeur c'est que le code est peut-être trop complexe (trop de variables, trop de données membres, fonction trop longue, etc..).
Après ça n'a pas vraiment d'importance, ce qui compte c'est que ça soit homogène dans toute la base de code.
Oh et puis de toute façon il ne faut pas manipuler de pointeur nu ! :mouarf:
MAT.
Salut à tous !
Il n'y a pas de différence entre if (ptr) et if (ptr != 0). Moi, je préfère la deuxième forme.
D'après Stroustrup, il vaut mieux éviter d'utiliser NULL : il s'agit en fait d'une macro constante :
Or, ce genre de définition échappe au contrôle de type et risque d'être redéfinie. Utiliser 0 est plus sûr.Code:
1
2#define NULL 0
À bientôt.
Le Farfadet Spatial