Red de conocimientos sobre prescripción popular - Remedios caseros - Cómo usar enumeraciones en lenguaje c

Cómo usar enumeraciones en lenguaje c

11.10 Tipos de enumeración

En problemas prácticos, los valores de algunas variables están limitados a un rango limitado. Por ejemplo, una semana sólo tiene siete días, un año sólo tiene doce meses, una clase tiene seis cursos por semana, etc. Obviamente es inapropiado describir estas cantidades como números enteros, caracteres u otros tipos. Para ello, el lenguaje C proporciona un tipo llamado "enumeración". La definición del tipo "enumeración" enumera todos los valores posibles y el valor de una variable descrita como tipo "enumeración" no puede exceder el rango definido. Tenga en cuenta que un tipo de enumeración es un tipo de datos primitivo, no un tipo construido, ya que no se puede descomponer en ningún tipo primitivo.

11.10.1 Definición de tipos de enumeración y descripción de variables de enumeración.

1. Definición de enumeración La forma general de definición del tipo de enumeración es:

Nombre de la enumeración {tabla de valores de enumeración};

Todos los valores disponibles deben todos aparecerán en la lista de valores de enumeración. Estos valores también se denominan elementos de enumeración.

Por ejemplo:

La enumeración se llama día de la semana y tiene siete valores de enumeración * * *, es decir, siete días de la semana. El valor de una variable descrita como de tipo día laborable sólo puede ser un día de siete.

2. Descripción de las variables de enumeración

Al igual que las estructuras y las uniones, las variables de enumeración se pueden describir de diferentes maneras, es decir, definirlas primero y luego describirlas, o pueden definirse o describirse. directamente.

Las variables A, B y C se describen como los días de la semana mencionados anteriormente y pueden tomar cualquiera de los siguientes métodos:

Enumerar los días de la semana {domingo, lunes, martes, miércoles, jueves , viernes, sábado};

Enumerar los días laborables a, b, c;

O se utiliza para:

Enumerar los días laborables {domingo, lunes, martes, miércoles, jueves, viernes, sábado}a, b, c;

O usado para:

Listar {domingo, lunes, martes, miércoles, jueves, viernes, sábado}a, b, c;

11.10.2 Asignación y uso de variables de tipo de enumeración

El uso de tipos de enumeración tiene las siguientes regulaciones:

1. es una constante, no una variable. No puede asignarle un valor mediante una declaración de asignación en un programa.

Por ejemplo, asigne los siguientes valores a los elementos de la enumeración del día de la semana:

Sun = 5

mon = 2

;

sun = mon

están todos equivocados.

2. El elemento de enumeración en sí lo define el sistema con un valor numérico que representa el número de serie, comenzando desde 0 y definido como 0, 1, 2...etc. Por ejemplo, entre semana, el valor del sol es 0, el valor del lunes es 1, ... y el valor del satélite es 6.

Ejemplo 11.10

main(){

Enumerar días laborables

{Domingo, lunes, martes, miércoles, jueves, viernes, Sábado} a, b, c;

a = sol

b = lunes

c = martes

printf( "% d, %d, %d ", a, b, c);

}

Descripción:

Solo se pueden asignar valores de enumeración a las enumeraciones Variables de enumeración, el valor del elemento no se puede asignar directamente a la variable de enumeración. Por ejemplo:

a = suma;

b = mon

es correcto. Y:

a = 0;

b = 1;

están equivocados. Si debe asignar un valor a una variable de enumeración, debe utilizar conversión.

Por ejemplo:

a =(enum Weekday)2;

El significado es asignar el elemento de enumeración con el número de serie 2 a la variable de enumeración A, que equivale a:

a = tue

También debe tenerse en cuenta que los elementos de enumeración no son constantes de caracteres ni constantes de cadena, por lo que no agregue comillas simples ni dobles cuando los utilice. .

Ejemplo 11.11

main(){

Enumeración

{ a, b, c, d } mes [31], j

int I

j = a

para(I = 1;i<=30;i++){

mes [I]= j;

j++;

si(j & gt; d)j = a;

}

para (I = 1;i<=30;i++){

Cambiar(mes[i])

{

Caso a: printf(" %2d % c\t ", I, ' a '); se rompe;

Caso b: printf (" %2d %c\t ", I, ' b '); se rompe;

Caso c:printf(" %2d %c\t ", I, ' c '); roto

Caso d:printf(" %2d %c\t ", I, ' d '; ); romper;

Predeterminado: romper

}

}

printf(" \ n ") ;

}