Cómo usar unión y enumeración en lenguaje c
Union permite acceder al mismo segmento de memoria según diferentes tipos de datos, y los datos en realidad se almacenan en la misma ubicación. Su declaración y uso son muy similares a la estructura, pero su funcionalidad real es completamente diferente:
¿Unión? nombre_modelo? {
¿Tipo 1? elemento 1;
tipo2? Elemento 2;
tipo3? Elemento 3;
.
.
}?Todos los elementos declarados en la unión object_name ocupan el mismo espacio de memoria y su tamaño es el tamaño del elemento más largo en la declaración. Por ejemplo:
¿Unión? mistipos_t? {
¿Ciel? c;
int? Yo;
¿Flotando? f;
}?Mi tipo; define tres elementos:
mistipos.c
mistipos.i
cada uno de f. es un tipo de datos diferente. Debido a que todos apuntan al mismo espacio de memoria, cambiar el valor de un elemento afecta los valores de todos los demás elementos.
Uno de los usos de unión es combinar el tipo primitivo largo con una estructura o matriz compuesta por otros tipos de datos más pequeños, como por ejemplo:
¿Unión? Mix_t{
¿Dragón? l;
estructura? {
¿Corto? Hola;
¿Corto? lo;
}?s;
Char? c[4];
}? Mix; El ejemplo anterior define tres nombres: mix.l, mix.s, mix.c. . En cuanto a qué nombre usar para el acceso, depende del tipo de datos que desee usar, ya sea largo, corto o char. La siguiente figura muestra la posible estructura de cada elemento de esta unión en memoria y cómo acceder a él a través de diferentes tipos de datos:
Segundo, enumeración
1. >
La forma general de definición del tipo de enumeración es:
? enumeración? nombre de enumeración {? ¿Tabla de valores de enumeración? }; Todos los valores disponibles deben aparecer 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:
enum? días laborables{? ¿Domingo, lunes, martes, miércoles, jueves, viernes, sábado? };
enumeración? ¿Días laborables? A, B, C; o para:
enum? días laborables{? ¿Domingo, lunes, martes, miércoles, jueves, viernes, sábado? }a, b, c; o para:
enum? {?Domingo, lunes, martes, miércoles, jueves, viernes, sábado? }a, b, c; 3. Asignación y uso de variables de tipo enumeración.
El tipo de enumeración tiene las siguientes regulaciones en uso:
A. El valor de enumeración 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 de días laborables:
? sol = 5;
mon = 2;
sun = mon están todos equivocados.
B. 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.
#¿Incluir? ltstdio.h gt
int? main()
{
enumeración? ¿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);
¿Regresión? 0;
}Descripción:
Solo se pueden asignar valores de enumeración a las variables de enumeración, y el valor de un elemento no se puede asignar directamente a las variables de enumeración. Por ejemplo:
a = suma;
b = mon es correcto. Y:
a = 0;
b = 1; Si debe asignar un valor a una variable de enumeración, debe utilizar conversión.
Por ejemplo:
? a=(enum? día laborable)2; su significado es asignar el elemento de enumeración con número de serie 2 a la variable de enumeración A, lo que equivale a:
a = mar