Colección de citas famosas - Slogan de motivación - En lenguaje C, ¿hay alguna forma de recorrer los tipos de enumeración?

En lenguaje C, ¿hay alguna forma de recorrer los tipos de enumeración?

En lenguaje C, los tipos de enumeración se tratan como tipo int o int sin signo, por lo que no hay forma de iterar sobre los tipos de enumeración de acuerdo con la especificación del lenguaje C.

Pero en algunos casos especiales, se puede lograr un recorrido condicional.

1 Los tipos de enumeración deben ser continuos.

Porque los tipos de enumeración admiten las siguientes definiciones:

Tipo de enumeración

{

Enumeración_0,

ENUM_10 = 10,

ENUM_11

};

Esto dará como resultado un tipo de enumeración discontinua que no se puede atravesar.

2 Agregue artificialmente etiquetas de inicio y fin en el tipo de enumeración.

Tipo de enumeración

{

Inicio de enumeración,

Enumeración_0,

ENUM_1,

Enumeration_2,

Enumeration_End

};

Se puede ver que en este tipo de enumeración, ENUM_START y ENUM_END se agregaron manualmente. Los ENUM_0, ENUM_1 y ENUM_2 en el medio son datos válidos reales. Cuando necesite agregar o eliminar elementos de enumeración más adelante, también debe asegurarse de que ENUM_START y ENUM_END sean los valores mínimo y máximo respectivamente.

Si se cumplen las dos condiciones anteriores, puede recorrer la enumeración. El código de referencia es el siguiente:

int I

for(I = ENUM; _ START +1;i<ENUM_ENDi++)

{

//Usar elementos de enumeración.

}

En este bucle, el valor de I son todos los valores válidos de los elementos de enumeración.