Diferencia clave: estructura frente a unión en C
Una matriz es un dato estructurado compatible con el lenguaje C. Se puede utilizar una matriz para almacenar elementos de datos del mismo tipo. Si hay una declaración como marcas int [10]; entonces las marcas son una matriz que puede almacenar diez marcas y todas son números enteros. A veces se requiere almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. Por ejemplo, un empleado puede tener una identificación de empleado, nombre, departamento, edad, etc. Son de diferentes tipos de datos. Por lo tanto, es necesario tener un método para almacenar varios elementos de datos como una sola unidad. Las estructuras y uniones en C se utilizan para almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. Una estructura y una unión son similares pero se diferencian principalmente debido a la asignación de memoria. La memoria necesaria para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. La memoria necesaria para almacenar una variable de unión es la memoria necesaria para el elemento más grande de la unión. Esa es la diferencia clave entre estructura y unión en C. Este artículo analiza la diferencia entre estructura y unión en C.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es la estructura en C
3. Qué es la unión en C
4. Similitudes entre la estructura y la unión en C
5. Comparación lado a lado - Estructura vs Unión en C en forma tabular
6. Resumen
¿Qué es la estructura en C?
Una estructura es un tipo de datos definido por el usuario en C. Ayuda a combinar elementos de datos de diferentes tipos. Una estructura puede representar registros. Un estudiante puede tener student_id, student_name, etc. En lugar de almacenar cada variable por separado, todos estos elementos de datos diferentes pueden compactarse en una sola unidad usando una estructura. Se define mediante la palabra clave 'estructura'. En una estructura, se puede acceder a todos sus miembros en cualquier momento. A continuación, se crea una estructura de tipo de datos derivados Student.
struct Student {
intstudent_id;
char student_name [20];
};
Para la estructura anterior, las variables se pueden declarar de la siguiente manera.
struct Estudiante estudiante1, estudiante2, estudiante3;
Hay dos métodos para acceder a los miembros de la estructura. Es decir, utilizando el operador de miembro (.) Y el operador de puntero de estructura (->). Se puede acceder a los miembros utilizando structure_variable_name. nombre de miembro. Si el programador quiere acceder al nombre del estudiante 2, entonces puede escribir la declaración como printf (estudiante2.nombre_del_estudiante);
Consulte el programa a continuación con una estructura.
Figura 01: Programa C con estructuras
Según el programa anterior, Student es una estructura. Contiene student_id y student_name. En el programa principal se declaran dos variables de tipo de estructura. Se denominan alumno1 y alumno2. La identificación del estudiante1 se asigna con el valor 1 usando el operador miembro como student1.student_id = 1. El nombre "Ann" es una cadena. Por lo tanto, se copia al miembro student_name usando la función de copia de cadena strcpy. La identificación y el nombre se asignan a student2 de manera similar. Finalmente, esos valores se imprimen utilizando el operador miembro.
La cantidad de memoria necesaria para almacenar una variable de estructura es la suma del tamaño de memoria de todos los miembros. Student_id contiene 4 bytes y student_name contiene 20 bytes (un byte para cada carácter). El total de 24 bytes es la suma del tamaño de memoria requerido por la estructura.
¿Qué es Unión en C?
Una unión es un tipo de datos definido por el usuario en C. Ayuda a almacenar diferentes tipos de datos en la misma ubicación de memoria. Un libro puede tener propiedades como book_name, price, etc. En lugar de crear variables para cada uno de ellos, se puede usar una unión para compactar todos los diferentes tipos de datos en una unidad usando una unión. Se define mediante la palabra clave 'unión'. A continuación se crea un Libro de unión de datos derivado.
unionBook {
nombre de char [20];
precio doble;
};
Para la unión anterior, las variables se pueden declarar de la siguiente manera.
unión Libro libro1, libro2;
Hay dos métodos para acceder a los miembros del sindicato. Es decir, utilizando el operador de miembro (.) Y el operador de puntero de estructura (->). Se puede acceder a los miembros mediante union_variable_name. nombre de miembro. Si el programador quiere acceder al nombre del libro1, entonces puede escribir la declaración como printf (libro1.nombre);
Consulte el siguiente programa con un sindicato.
Figura 02: Programa C usando union
Según el programa anterior, el Libro es una unión. El libro1 es una variable de tipo union. El nombre y el precio son valores asignados. En unión, solo se puede acceder a uno de sus miembros a la vez y todos los demás miembros tendrán valores basura. El valor de id no se imprime correctamente, pero el valor del precio se imprime correctamente.
Figura 03: Programa C modificado con unión
Según el programa anterior, Book es un sindicato. Book1 y book2 son variables de tipo unión. Primero, se asigna el valor para el nombre del libro1 y se imprime. Luego se asigna el valor para el nombre del libro2 y se imprime. Todos los miembros se imprimen correctamente porque se utiliza un miembro a la vez. La memoria necesaria para almacenar una unión es la memoria necesaria para el elemento más grande de la unión. En el programa anterior, la variable de nombre es de 20 bytes. Es más grande que el precio. Entonces, la asignación de memoria para la unión es de 20 bytes.
¿Cuáles son las similitudes entre estructura y unión en C?
- Tanto la Estructura como la Unión en C son tipos de datos definidos por el usuario.
- Tanto la Estructura como la Unión en C se pueden usar para almacenar diferentes tipos de datos en la misma ubicación de memoria.
¿Cuál es la diferencia entre estructura y unión en C?
Diferencia del medio del artículo antes de la mesa
Estructura vs Unión en C |
|
La estructura es un tipo de datos definido por el usuario en lenguaje C que permite combinar datos de diferentes tipos. | Union es un tipo de datos definido por el usuario en lenguaje C que permite combinar datos de diferentes tipos. |
Accesibilidad | |
En una estructura, se puede acceder a todos sus miembros en cualquier momento. | En una unión, solo se puede acceder a uno de sus miembros a la vez y todos los demás miembros contendrán valores basura. |
Asignación de memoria | |
La memoria necesaria para almacenar una variable de estructura es la suma del tamaño de la memoria de todos los miembros. | La memoria necesaria para almacenar una variable de unión es la memoria necesaria para el elemento más grande de la unión. |
Palabra clave | |
La palabra clave utilizada para definir una estructura es "estructura". | La palabra clave utilizada para definir una unión es 'unión'. |
Resumen - Estructura vs Unión en C
Se utiliza una matriz para almacenar los elementos de datos del mismo tipo. A veces es necesario almacenar elementos de datos de diferentes tipos en la misma ubicación de memoria. El lenguaje de programación C proporciona estructura y unión para realizar esta tarea. Ambos son tipos de datos definidos por el usuario. La memoria necesaria para almacenar una variable de estructura es la suma del tamaño de la memoria de todos los miembros. La memoria necesaria para almacenar una variable de unión es la memoria necesaria para el elemento más grande de la unión. Esta es la diferencia entre estructura y unión en C.