« Programmation C/Erreurs » : différence entre les versions
Contenu supprimé Contenu ajouté
m 18446744073709551616 se code sur 65bits |
|||
Ligne 51 :
teste("256");
/* 2^64
teste("
return 0;
}</pre>
Si le type <code>unsigned long</code> est codé sur 32 bits, on peut obtenir:
La conversion a été effectéee, et la valeur est: 256
Impossible de convertir le nombre '
Il est nécessaire de placer <code>errno</code> à 0 ''avant'' d'utiliser <code>strtoul</code>, car les fonctions de la bibliothèque standard ne sont pas obligées de la mettre à zéro en cas de succès. Si on ne la réinitialisait pas « manuellement », on pourrait voir le résultat d'une erreur causée par un appel de fonction antérieur. C'est une des lourdeurs du modèle de gestion d'erreur du C, bien qu'une telle paranoïa n'est pas toujours nécessaire.
|