Différence entre structure et union Différence Entre

Anonim

. La structure et l'union sont des types de données définis par l'utilisateur en langage C et sont conceptuellement les mêmes, cependant, ils sont encore différents à certains égards, comme la façon dont la mémoire est allouée à leurs membres. Ils sont déclarés de manière similaire, mais ils fonctionnent différemment. Ils permettent à l'utilisateur de combiner différents types de données sous un même 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 d'union partagent le même emplacement de mémoire. Étudions la différence entre la structure et l'union est le détail.

Qu'est-ce que la structure?

Une structure est juste 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 à la fois des types de données simples et complexes liés les uns aux autres, ce qui, autrement, n'aura aucun sens. Chaque membre dans une structure obtient son propre emplacement de mémoire afin qu'il puisse être consulté et récupéré à tout moment.

Une structure est utilisée lorsqu'un grand nombre de données a besoin d'un regroupement comme un répertoire qui stocke des informations sur plusieurs membres dans un livre ou un carnet d'adresses qui stocke toutes les informations sur un seul contact - nom, adresse, numéro de contact, et ainsi de suite. 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é 'struct' permet de définir une structure de différents types de données sous un même nom. Par exemple, si vous souhaitez créer une base de données d'employés, vous devez stocker le nom, l'âge, le numéro de téléphone et le salaire de l'employé sous 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 la chaîne;

âge de la chaîne;

téléphone à cordes;

salaire à la 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 fermantes doivent être suivies d'un point-virgule (;).

Deux types d'opérateurs peuvent accéder aux membres d'une structure:

  1. Opérateur membre
  2. Opérateur de pointeur de structure

Qu'est-ce que 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 différents types dans le même emplacement 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 les uns aux autres dans une union et il est assez grand pour convenir à tous ses membres.

Lorsqu'une variable est associée à union, le compilateur alloue la mémoire en considérant la taille de la plus grande mémoire, de sorte que la taille d'une union est é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 à chaque instance de temps.

L'adresse est la même pour tous les membres d'une union, 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. Une union peut être utilisée lorsque vous souhaitez stocker un élément parmi plusieurs types de données.

employé syndical {

char name [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 la structure et l'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 la 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 la mémoire. D'autre part, une union partage le même espace mémoire pour tous ses membres, de sorte que la mémoire partagée est allouée.

3. Accès aux membres

Un syndicat stocke une seule valeur à la fois pour tous ses membres, rendant l'accès à un seul membre à la fois. Bien que plusieurs valeurs puissent ê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 taille la plus grande.

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 la modification de la valeur d'un membre n'aura aucun effet sur les valeurs des autres membres. Alors qu'un syndicat stocke la même valeur pour tous ses membres et le changement de valeur d'un membre affectera la valeur de l'autre.

Structure par rapport à Union

Structure Union
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 la 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.
La modification de la valeur d'un membre n'affecte pas la valeur d'un autre membre. La modification de la valeur d'un membre affectera les autres valeurs de membre.
Stocke des valeurs différentes 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 elles utilisent la même syntaxe pour la déclaration des 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 séparé dans une structure, alors que dans une union, l'espace de 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.
  • Tout membre de n'importe quelle séquence peut être accédé dans une structure, alors que dans une union, seule cette variable peut être accédée dont la valeur est récemment stockée.