« Conseils de codage en C/Robustesse des programmes » : différence entre les versions
Contenu supprimé Contenu ajouté
Début rédaction |
(Aucune différence)
|
Version du 4 juin 2008 à 21:30
L'application de ces conseils suivants rendent les logiciels plus robustes : plus tolérants aux fautes.
switch et clause default
Les instructions de choix multiple : (switch, case...) doivent comporter une clause pour les valeurs non testées individuellement (default);
Justification
Permet de traiter les cas non prévus explicitement en détectant les cas dégradés dus à des valeurs inattendues.
Ces valeurs peuvent provenir :
- de modifications non contrôlées d’une autre partie du code.
- d'un mauvais interfaçage de la fonction.
- d'une valeur non prévue reçue ou lue
- pour un appel système, à la compilation et de l'exécution sur un système non prévu.
Exemple (extrait)
//...
while ((optc = getopt_long (argc, argv, "htvm", longopts, (int *) 0)) != EOF)
{
switch (optc)
{
case 'v':
v = 1;
break;
case 'h':
h = 1;
break;
case 'm':
m = 1;
break;
default:
unknown = 1;
break;
}
}
Outils
- Les outils de vérification statique, comme splint, émettent un warning lorsqu'une clause default est oubliée.
- Un comptage des mots clés des mots switch et default dans un éditeur de texte ou avec les outils grep et wc d'UNIX.