Différence entre structure et union

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.

Quelle est la structure?

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:

  1. Membre opérateur
  2. Opérateur de pointeur de structure

Quelle est l'union?

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é"..

Différence entre structure et union

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 vs. Union

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.

Résumé

  • La structure et l'union sont des types de données définis par l'utilisateur en C qui sont fonctionnellement et conceptuellement identiques mais qui sont assez différents à certains égards..
  •  Les deux contiennent des variables de types de données différents mais utilisent la même syntaxe pour la déclaration de variables et l'accès aux membres. Alors qu'une structure est définie par le mot clé 'struct', une union est définie par le mot clé 'union'.
  • Chaque membre obtient un emplacement de mémoire distinct dans une structure, alors que dans une union, l'espace mémoire total est équivalent au membre de taille la plus grande. Tous les membres partagent le même espace mémoire dans une union.
  • On peut accéder à n'importe quel membre d'une séquence dans une structure, alors que dans une union, on ne peut accéder qu'à cette variable dont la valeur est récemment stockée.