Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :

next up previous contents index
Next: Erreur sur les tableaux Up: Le bêtisier Previous: Erreurs avec les priorités

Sous-sections

Erreur avec l'instruction switch

Oubli du break

L'instruction de sélection a pour syntaxe : instruction-sélection :
$\Rightarrow$ switch ( expression ) instruction
La notion d'alternative de la sélection n'apparaît pas dans la syntaxe : le programmeur doit les réaliser par une liste d'instruction étiquettée par case expression-constante et terminée par break. En cas d'oubli du break, une catastrophe s'ensuit.

Erreur sur le default

L'alternative à exécuter par défaut est introduite par l'étiquette default. Si une faute de frappe est commise sur cette étiquette, l'alternative par défaut ne sera plus reconnue : l'étiquette sera prise pour une étiquette d'instruction sur laquelle ne sera fait aucun goto.
switch(a)
   {
   case 1 : a = b;
   defult : return(1);       /*   erreur non détectée    */
   }

Une version diabolique de cette erreur est relatée dans le livre de Peter Van Der Linden : si la lettre l de default est remplacée par le chiffre 1, avec les fontes utilisées pour imprimer les sources, qui verra la différence entre l et 1 ?



Bernard Cassagne
1998-12-09
Contacter le responsable de la rubrique C