Un tableau est une donnée structurée supportée par le langage C. Un tableau peut être utilisé pour stocker des éléments de données du même type. S'il existe une déclaration en tant que marque internationale [10]; alors les marques sont un tableau pouvant stocker dix marques, qui sont toutes des entiers. Il est parfois nécessaire de stocker des éléments de données de types différents dans le même emplacement de mémoire. Par exemple, un employé peut avoir un ID d’employé, un nom, un département, son âge, etc. Ils sont de types de données différents. Par conséquent, il est nécessaire d’avoir 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 types différents dans le même emplacement mémoire. Une structure et une union sont similaires, mais se différencient principalement par 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.
1. Vue d'ensemble et différence clé
2. Quelle est la structure en C
3. Qu'est-ce que l'Union en C?
4. Similarités entre structure et union en C
5. Comparaison côte à côte - Structure vs Union en C sous forme tabulaire
6. Résumé
Une structure est un type de données défini par l'utilisateur en C. Il facilite la combinaison d'éléments de données de différents types. Une structure peut représenter des enregistrements. Un étudiant peut avoir nom_étudiant, nom_étudiant, etc. Plutôt que de stocker chaque variable séparément, tous ces éléments de données peuvent être compactés 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 une structure de type de données dérivée Student.
struct Student
intstudent_id;
char nom_étudiant [20];
;
Pour la structure ci-dessus, les variables peuvent être déclarées comme suit.
struct student student1, student2, student3;
Il existe deux méthodes pour accéder aux membres de la structure. C'est-à-dire en utilisant l'opérateur de membre (.) Et l'opérateur de pointeur de structure (->). Les membres sont accessibles à l'aide de nom_variable_structure. nom de membre. Si le programmeur souhaite accéder au nom de l'étudiant 2, il peut alors écrire l'instruction sous la forme printf (student2.student_namename);
Référez-vous au programme ci-dessous avec une structure.
Figure 01: Programme en C avec structures
Selon le programme ci-dessus, Student est une structure. Il contient student_id et student_name. Deux variables de type de structure sont déclarées dans le programme principal. Ils s'appellent student1 et student2. L'identifiant de student1 est attribué à la valeur 1 en utilisant l'opérateur du membre comme student1.student_id = 1. Le nom "Ann" est une chaîne. Par conséquent, il est copié dans le membre nom_étudiant à 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 d'un 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. Student_id contient 4 octets et student_name 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..
Une union est un type de données défini par l'utilisateur en C. Il permet de stocker différents types de données dans le même emplacement de mémoire. Un livre peut avoir des propriétés telles que book_name, price, etc. Au lieu de créer des variables pour chacune d'entre elles, une union peut être utilisée pour compacter tous les différents types de données en une seule unité à l'aide d'une union. Il est défini à l'aide du mot clé 'union'. Ce qui suit crée une union de données dérivée. Livre.
unionBook
nom du personnage [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-à-dire en utilisant l'opérateur de membre (.) Et l'opérateur de pointeur de structure (->). Vous pouvez accéder aux membres en utilisant union_variable_name. nom de membre. Si le programmeur veut accéder au nom du livre1, il peut alors écrire l'instruction sous la forme printf (book1.name);
Référez-vous au programme ci-dessous avec un syndicat.
Figure 02: Programme C utilisant l’union
Selon le programme ci-dessus, le livre est un syndicat. Le book1 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 parasites. 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 un syndicat. Book1 et book2 sont des variables de type union. Tout d'abord, la valeur du nom de book1 est assignée et elle est imprimée. Ensuite, la valeur du nom de book2 est assignée et imprimée. Tous les membres 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 20 octets. C'est plus grand que le prix. Donc, l'allocation de mémoire pour l'union est de 20 octets.
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 types différents. | Union est un type de données défini par l'utilisateur en langage C qui permet de combiner des données de types différents.. |
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 parasites.. |
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'. |
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 de 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 structure et union en C.
1.Point, tutoriels. “Structures en C.”, Tutoriels Point, 15 août 2017. Disponible ici
2.Point, tutoriels. “Les syndicats en C.” , Tutoriels Point, 15 août 2017. Disponible ici