En C il peut être utile de connaître le nombre de valeur déclarées dans un enum (au hasard pour faire une boucle d’init) :
enum MonEnum {
en_arbre,
en_fleur,
en_raisin,
}
#define MONENUM_SIZE 3
for(int i=0; i < MONENUM_SIZE; i++){
faire_un_truc((enum MonEnum)i);
}
Langage du code : PHP (php)
Mais faire un #define
avec la taille à mettre à jour à chaque fois qu’on modifie l’enum c’est pénible et on oublie facilement.
Une méthode pour éviter ça est d’ajouter une valeurs dans l’enum à la fin de la liste. Puis de la caster en Int pour récupérer la taille :
enum MonEnum {
en_arbre = 0,
en_fleur,
en_raisin,
/* tricks pour récupérer la taille */
taille_de_MonEnum,
}
#define MONENUM_SIZE ((int)taille_de_MonEnum)
for(int i=0; i < MONENUM_SIZE; i++){
faire_un_truc((enum MonEnum)i);
}
Langage du code : PHP (php)
Il est préférable de bien initialiser la première valeur à 0 pour être sûr.