Pas vraiment. modeSet est une variable entière qui peut prendre une ce ces trois valeurs : Aucun, HMS, Autre.
Tu peux définir Aucun, HMS, Autre comme ceci :
enum {Aucun, HMS, Autre}; // ou Aucun vaut ZERO, MHS vaut 1, etc.
// mais tu peux changer les valeurs :
enum {Aucun = 0, HMS = 10, Autre = 100};
Je pense qu'un default ne ferait pas de mal, au cas où :
switch(modeSet) {
case Aucun:
break;
case HMS:
break;
case Autre:
break;
default :
Serial.println("what's up doc ???");
break;
}
Par exemple, en Pascal Objet, on peut faire ce qui suit:
type
TPosCurseur = (Hors, Dedans, CoinHG, CoinHD, CoinBD, CoinBG,
var
CurseurOu: TPosCurseur; {Position du curseur par rapport à la sélection}
case CurseurOu of
BordG: Org.X:= X;
BordD: Fin.X:= X;
BordH: Org.Y:= Y;
BordB: Fin.Y:= Y;
CoinHG: Org:= Point(X, Y);
CoinBD: Fin:= Point(X, Y);
end;
le compilateur ne va pas être content et va vous dire
sketch.ino: In function 'void setup()':
sketch.ino:5:13: error: invalid conversion from 'int' to 'Modes' [-fpermissive]
5 | modeSet = 2; // AUTRE
| ^
| |
| int
Error during build: exit status 1
Et donc si l'on ne fait des affectations qu'avec les énumérations (ce qui est impératif si l'on veut respecter le type), alors on n'a pas besoin de mettre un default: (sauf si on n'inclut pas les 3 modes dans le switch)
Pour éviter qu'un enum vienne "polluer" le reste du code quand on fusionne des bibliothèques, c'est aussi parfois bien de créer soit un namespace, soit d'avoir des noms qui sortent un peu du commun. (bon avec des mots en français on a un peu moins de risques mais HMS pourrait être trouvé pour "Hour, Minute, Second"