Différence clé - Structure vs Union en C
Un tableau est une structure de données prise en charge par le langage C. Un tableau peut être utilisé pour stocker des éléments de données du même type. S'il y a une instruction sous forme de marques int [10]; alors les marques sont un tableau qui peut stocker dix marques et tous sont des entiers. Parfois, il est nécessaire de stocker des éléments de données de différents types dans le même emplacement de mémoire. Par exemple, un employé peut avoir un identifiant d'employé, un nom, un service, un âge, etc. Ils sont de types de données différents. Par conséquent, il est nécessaire de disposer d'une méthode pour stocker divers éléments de données en une seule unité. Les structures et les unions en C sont utilisées pour stocker des éléments de données de différents types dans le même emplacement mémoire. Une structure et une union sont similaires mais se différencient principalement en raison de l'allocation de mémoire. La mémoire requise pour stocker une variable de structure est la somme de la taille de la mémoire de tous les membres. La mémoire requise pour stocker une variable d'union est la mémoire requise pour le plus grand élément de l'union. C'est la principale différence entre structure et union en C. Cet article traite de la différence entre structure et union en C.
CONTENU
1. Aperçu et différence clé
2. Qu'est-ce que la structure en C
3. Qu'est-ce que l'union en C
4. Similitudes entre structure et union en C
5. Comparaison côte à côte - Structure vs union en C sous forme tabulaire
6. Résumé
Qu'est-ce que la structure en C?
Une structure est un type de données défini par l'utilisateur en C. Elle permet de combiner des éléments de données de différents types. Une structure peut représenter des enregistrements. Un étudiant peut avoir student_id, student_name etc. Plutôt que de stocker chaque variable séparément, tous ces différents éléments de données peuvent être compacts en une seule unité à l'aide d'une structure. Il est défini à l'aide du mot-clé 'struct'. Dans une structure, tous ses membres sont accessibles à tout moment. Ce qui suit crée un type de données dérivé struct Student.
struct Student {
intstudent_id;
char nom_étudiant [20];
};
Pour la structure ci-dessus, les variables peuvent être déclarées comme suit.
struct Élève étudiant1, étudiant2, étudiant3;
Il existe deux méthodes pour accéder aux membres de la structure. C'est en utilisant l'opérateur membre (.) Et l'opérateur pointeur de structure (->). Les membres sont accessibles en utilisant structure_variable_name. nom de membre. Si le programmeur veut accéder au nom de l'étudiant 2, alors il peut écrire l'instruction comme printf (student2.student_namename);
Référez-vous au programme ci-dessous avec une structure.
Figure 01: Programme C avec structures
Selon le programme ci-dessus, Student est une structure. Il contient student_id et student_name. Deux variables de type structure sont déclarées dans le programme principal. Ils sont appelés étudiant1 et étudiant2. L'id de student1 est attribué à la valeur 1 en utilisant l'opérateur membre comme student1.student_id = 1. Le nom «Ann» est une chaîne. Par conséquent, il est copié sur le membre student_name à l'aide de la fonction de copie de chaîne strcpy. L'identifiant et le nom sont attribués à student2 de la même manière. Enfin, ces valeurs sont imprimées à l'aide de l'opérateur membre.
La quantité de mémoire requise pour stocker une variable de structure est la somme de la taille de la mémoire de tous les membres. L'élève_id contient 4 octets et le nom_étudiant contient 20 octets (un octet chacun pour un caractère). Le total de 24 octets est la somme de la taille de la mémoire requise par la structure.
Qu'est-ce que l'Union en C?
Une union est un type de données défini par l'utilisateur en C. Elle permet de stocker différents types de données dans le même emplacement mémoire. Un livre peut avoir des propriétés telles que book_name, price etc. Au lieu de créer des variables pour chacun d'eux, une union peut être utilisée pour compacter tous les différents types de données en une seule unité en utilisant une union. Il est défini à l'aide du mot-clé «union». Ce qui suit crée un livre d'union de données dérivées.
unionBook {
nom du caractère [20];
double prix;
};
Pour l'union ci-dessus, les variables peuvent être déclarées comme suit.
union Book book1, book2;
Il existe deux méthodes pour accéder aux membres du syndicat. C'est en utilisant l'opérateur membre (.) Et l'opérateur pointeur de structure (->). Les membres sont accessibles en utilisant union_variable_name. nom de membre. Si le programmeur veut accéder au nom du book1, alors il peut écrire l'instruction comme printf (book1.name);
Référez le programme ci-dessous avec un syndicat.
Figure 02: programme C utilisant union
Selon le programme ci-dessus, le Livre est une union. Le livre1 est une variable de type union. Le nom et le prix sont des valeurs attribuées. En union, un seul de ses membres est accessible à la fois et tous les autres membres auront des valeurs de garbage. La valeur de id ne s'imprime pas correctement mais la valeur du prix s'imprime correctement.
Figure 03: Programme C modifié avec union
Selon le programme ci-dessus, Book est une union. Le livre1 et le livre2 sont des variables de type union. Tout d'abord, la valeur du nom book1 est attribuée et elle est imprimée. Ensuite, la valeur du nom du livre2 est attribuée et elle est imprimée. Tous les membres s'impriment correctement car un membre est utilisé à la fois. La mémoire requise pour stocker une union est la mémoire requise pour le plus grand élément de l'union. Dans le programme ci-dessus, la variable de nom est de 20 octets. C'est plus grand que le prix. Ainsi, l'allocation de mémoire pour l'union est de 20 octets.
Quelles sont les similitudes entre structure et union en C?
- Structure et Union en C sont des types de données définis par l'utilisateur.
- Structure et Union en C peuvent être utilisés pour stocker différents types de données dans le même emplacement mémoire.
Quelle est la différence entre structure et union en C?
Diff article au milieu avant la table
Structure vs union en C |
|
La structure est un type de données défini par l'utilisateur en langage C qui permet de combiner des données de différents types ensemble. | Union est un type de données défini par l'utilisateur en langage C qui permet de combiner des données de différents types entre elles. |
Accessibilité | |
Dans une structure, tous ses membres sont accessibles à tout moment. | Dans une union, un seul de ses membres est accessible à la fois et tous les autres membres contiendront des valeurs inutiles. |
Allocation de mémoire | |
La mémoire requise pour stocker une variable de structure est la somme de la taille de la mémoire de tous les membres. | La mémoire requise pour stocker une variable d'union est la mémoire requise pour le plus grand élément de l'union. |
Mot-clé | |
Le mot clé utilisé pour définir une structure est 'struct'. | Le mot clé utilisé pour définir une union est «union». |
Résumé - Structure vs union en C
Un tableau est utilisé pour stocker les éléments de données du même type. Parfois, il est nécessaire de stocker des éléments de données de types différents dans le même emplacement mémoire. Le langage de programmation C fournit une structure et une union pour accomplir cette tâche. Les deux sont des types de données définis par l'utilisateur. La mémoire requise pour stocker une variable de structure est la somme de la taille de la mémoire de tous les membres. La mémoire requise pour stocker une variable d'union est la mémoire requise pour le plus grand élément de l'union. C'est la différence entre la structure et l'union dans C.