La structure et l'union sont des types de données définis par l'utilisateur en langage C et sont conceptuellement identiques, mais ils diffèrent encore à certains égards, comme la façon dont la mémoire est allouée à leurs membres. Ils sont déclarés de la même manière mais fonctionnent différemment. Ils permettent à l'utilisateur de combiner différents types de données sous un même nom. Bien qu'un emplacement de mémoire distinct soit utilisé pour chaque membre lors de la déclaration de variables de structure, les différents membres d'une variable d'union partagent le même emplacement de mémoire. Etudions la différence entre structure et union, c'est le détail.
Une structure est simplement un autre type de données défini par l'utilisateur en C qui permet à l'utilisateur de combiner des types de données de différents types en un seul type dans un bloc de mémoire. Une structure peut contenir des types de données simples et complexes liés les uns aux autres, ce qui autrement n'aurait aucun sens. Chaque membre d'une structure reçoit son propre emplacement de mémoire afin de pouvoir y accéder et le récupérer à tout moment..
Une structure est utilisée lorsqu'un grand nombre de données doit être groupée, par exemple un répertoire qui stocke des informations sur de nombreux membres dans un livre ou un carnet d'adresses contenant toutes les informations sur un contact unique - nom, adresse, numéro de contact, etc. L'adresse de chaque membre sera dans l'ordre croissant, ce qui signifie que la mémoire de chaque membre commencera à différentes valeurs de décalage. Modifier la valeur d'un membre n'aura aucun effet sur les autres membres.
Un mot clé 'struct' permet de définir une structure de différents types de données sous un nom unique. Par exemple, si vous souhaitez créer une base de données d'employés, vous devez stocker le nom, l'âge, le téléphone et le salaire de l'employé dans une seule entité. Ceci est fait par le mot clé 'struct', qui indique ensuite au compilateur qu'une structure a été déclarée.
struct employee
nom de chaîne;
âge de la ficelle;
téléphone à cordes;
salaire de chaîne;
emp1, emp2;
Ici, 'employé' est le nom de la structure et deux variables 'emp1' et 'emp2' sont créées du type 'employé'. Les accolades de fermeture doivent être suivies d'un point-virgule (;).
Les membres d'une structure sont accessibles à deux types d'opérateurs:
C'est un type de données spécial utilisé en C qui permet à l'utilisateur de stocker des types de données de types différents dans le même emplacement de mémoire. Une union est assez similaire à une structure et peut être définie en remplaçant le mot clé 'struct' par le mot clé 'union'. Les membres se superposent dans la mémoire d’un syndicat qui est suffisamment grand pour s’adapter à tous ses membres..
Lorsqu'une variable est associée à une union, le compilateur alloue la mémoire en tenant compte de la taille de la mémoire la plus grande. La taille d'une union est donc égale à la taille du plus grand membre de données. Une union peut être définie avec plusieurs membres, mais un seul membre contient la valeur à un moment donné..
L'adresse est la même pour tous les membres d'un syndicat, ce qui signifie que chaque membre commence avec la même valeur de décalage. Et modifier la valeur d'un membre affectera les valeurs des autres membres. Une union peut être utilisée lorsque vous souhaitez stocker un élément appartenant à plusieurs types de données..
employé syndical
nom du personnage [32];
int age;
salaire flottant;
;
Ici, le mot-clé 'union' définit l'union qui est assez similaire à la déclaration de la structure. La variable peut soit stocker une valeur de chaîne qui est "nom de l'employé", une valeur entière qui est "l'âge de l'employé" ou un flottant qui représente le "salaire de l'employé"..
1. mot-clé
Le mot clé 'struct' est utilisé pour définir une structure alors que le mot clé 'union' est utilisé pour définir une union.
2. Allocation de mémoire
Un espace mémoire séparé est attribué aux membres d'une structure et les membres ont des adresses différentes qui ne partagent pas de mémoire. Par contre, une union partage le même espace mémoire pour tous ses membres, de sorte que l'emplacement mémoire partagé est alloué..
3. Accès membre
Un syndicat stocke une valeur unique à la fois pour tous ses membres, ce qui rend l'accessibilité accessible à un seul membre à la fois. Alors que plusieurs valeurs peuvent être stockées dans une structure, toute valeur de membre peut être consultée et récupérée à tout moment.
4. taille
La taille d'une structure est égale à la somme de la taille de tous les membres ou plus, alors que la taille d'une union est égale à la taille du membre de la plus grande taille.
5. Initialisation
Dans une structure, plusieurs membres peuvent être initialisés à la fois, alors que dans une union, seul le premier membre peut être initialisé avec la valeur de son type..
5. valeur
Une structure peut stocker différentes valeurs de tous les membres et toute modification de la valeur d'un membre n'aura aucun effet sur les valeurs des autres membres. Une union stocke la même valeur pour tous ses membres et le changement de valeur d’un membre affecte la valeur des autres.
Structure | syndicat |
Le mot-clé Struct est utilisé pour définir une structure. | Le mot clé Union est utilisé pour définir une union.. |
Les membres ne partagent pas de mémoire dans une structure. | Les membres partagent l'espace mémoire dans une union. |
Tout membre peut être récupéré à tout moment dans une structure. | Un seul membre peut être consulté à la fois dans un syndicat. |
Plusieurs membres d'une structure peuvent être initialisés à la fois. | Seul le premier membre peut être initialisé. |
La taille de la structure est égale à la somme de la taille de chaque membre. | La taille de l'union est égale à la taille du membre le plus grand. |
Modifier la valeur d'un membre n'affectera pas la valeur d'un autre. | Le changement de valeur d'un membre affectera les valeurs des autres membres. |
Stocke différentes valeurs pour tous les membres. | Stocke la même valeur pour tous les membres. |