Différence entre la structure et l'union

Différence entre la structure et l'union

La structure et l'Union sont tous deux des types de données définis par l'utilisateur dans le langage C et sont conceptuellement les mêmes, cependant, ils sont toujours différents à 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 ils fonctionnent différemment. Ils permettent à l'utilisateur de combiner différents types de données sous un seul nom. Alors que l'emplacement de mémoire séparé est utilisé pour chaque membre lors de la déclaration des variables de structure, les différents membres d'une variable syndicale partagent le même emplacement de mémoire. Étudons la différence entre la structure et l'union est le détail.

Qu'est-ce que la structure?

Une structure n'est qu'un autre type de données défini par l'utilisateur en C qui permet à l'utilisateur de combiner les 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, qui autrement n'auront pas de sens. Chaque membre d'une structure obtient son propre emplacement de mémoire afin qu'il puisse être accessible et récupéré à tout moment.

Une structure est utilisée lorsque beaucoup de données doivent être regroupées comme un répertoire qui stocke des informations sur de nombreux membres dans un livre ou un carnet d'adresses qui stocke toutes les informations sur un seul contact - 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. La modification de la valeur d'un membre n'aura aucun effet sur les autres membres.

Un mot-clé «structure» est utilisé pour définir une structure de différents types de données sous un seul nom. Par exemple, si vous souhaitez créer une base de données des employés, vous devrez stocker le nom, l'âge, l'âge, le téléphone et le salaire des employés sous une seule entité. Ceci est fait par le mot-clé «structure», qui indique ensuite au compilateur qu'une structure a été déclarée.

Employé de structure

nom de chaîne;

âge des cordes;

Téléphone de chaîne;

salaire de cordes;

EMP1, EMP2;

Ici, «l'employé» est le nom de la structure et deux variables «EMP1» et «EMP2» sont créées du type «employé». Les accolades de clôture doivent être suivies d'un point-virgule (;).

Les membres d'une structure sont accessibles par deux types d'opérateurs:

  1. Membre de l'exploitant
  2. Opérateur de pointeur de structure

Qu'est-ce que l'union?

Il s'agit d'un type de données spécial utilisé en C qui permet à l'utilisateur de stocker les types de données de différents types dans le même emplacement de mémoire. Un syndicat est assez similaire à une structure et peut être défini en remplaçant le mot clé «struct» par le mot-clé «Union». Les membres recouvrent la mémoire les uns des autres dans un syndicat et il est assez grand pour s'adapter à tous ses membres.

Lorsqu'une variable est associée à l'union, le compilateur alloue la mémoire en considérant la taille de la plus grande mémoire, de sorte que la taille d'un syndicat est égale à la taille du plus grand membre de données. Un syndicat peut être défini avec de nombreux membres, mais un seul membre contient la valeur à un cas donné.

L'adresse est la même pour tous les membres d'un syndicat, ce qui signifie que chaque membre commence à la même valeur de décalage. Et modifier la valeur d'un membre affectera les valeurs des autres membres. Un syndicat peut être utilisé lorsque vous souhaitez stocker quelque chose qui est l'un des nombreux types de données.

Employé du syndicat

Nom de char [32];

en âge;

salaire flottant;

;

Ici, le mot-clé «Union» définit le syndicat 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é», soit un flotteur qui représente le «salaire de l'employé».

Différence entre la structure et l'union

1. Mot-clé

Le mot-clé «structure» est utilisé pour définir une structure tandis que le mot-clé «Union» est utilisé pour définir une union.

2. Allocation de mémoire

L'espace mémoire séparé est attribué aux membres d'une structure et les membres ont des adresses différentes qui ne partagent pas la mémoire. Un syndicat, en revanche, partage le même espace mémoire pour tous ses membres afin que l'emplacement de la mémoire partagée soit alloué.

3. Accès aux membres

Un syndicat stocke une seule valeur à la fois pour tous ses membres faisant l'accessibilité à un seul membre à la fois. Tandis que plusieurs valeurs peuvent être stockées dans une structure afin que toute valeur de membre puisse être accessible 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, tandis que la taille d'un syndicat est égale à la taille du membre de la plus grande taille.

5. Initialisation

Dans une structure, plusieurs membres peuvent être initialisés immédiatement, tandis que dans un syndicat, 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 un changement dans la valeur d'un membre n'aura aucun effet sur les valeurs des autres membres. Tandis qu'un syndicat stocke la même valeur pour tous ses membres et le changement de valeur d'un membre affectera la valeur des autres.

Structure vs. syndicat

Structure syndicat
Le mot-clé struct est utilisé pour définir une structure. Le mot-clé syndical est utilisé pour définir un syndicat.
Les membres ne partagent pas de mémoire dans une structure. Les membres partagent l'espace mémoire dans un syndicat.
Tout membre peut être récupéré à tout moment dans une structure. Un seul membre peut être accessible à la fois dans un syndicat.
Plusieurs membres d'une structure peuvent être initialisés immédiatement. 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 plus grand membre.
La modification de 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 tous deux des types de données définis par l'utilisateur en C qui sont fonctionnellement et conceptuellement les mêmes, mais sont très différents à certains égards.
  •  Les deux contiennent des variables de différents types de données, mais ils utilisent la même syntaxe pour la déclaration de variables et les membres accédant. Alors qu'une structure est définie par le mot-clé «structure», une union est définie par le mot-clé «Union».
  • Chaque membre obtient un emplacement de mémoire séparé dans une structure, alors que dans une union, l'espace mémoire total est équivalent au membre de la plus grande taille. Tous les membres partagent le même espace mémoire dans un syndicat.
  • Tout membre de n'importe quelle séquence est accessible dans une structure, alors que dans un syndicat, seule cette variable est accessible à la valeur de laquelle est récemment stocké.