Différence entre structure et union en C

Table des matières:

Différence entre structure et union en C
Différence entre structure et union en C

Vidéo: Différence entre structure et union en C

Vidéo: Différence entre structure et union en C
Vidéo: Structure vs union||Difference between structure and union in C||3 minutes master||Neverquit 2024, Novembre
Anonim

Différence clé - Structure vs Union en C

Un tableau est une structure de données prise en charge par le langage C. Un tableau peut être utilisé pour stocker des éléments de données du même type. S'il y a une déclaration sous forme de marques int [10]; alors les marques sont un tableau qui peut stocker dix marques et toutes sont des entiers. Parfois, il est nécessaire de stocker des éléments de données de différents types dans le même emplacement mémoire. Par exemple, un employé peut avoir un ID d'employé, un nom, un service, un âge, etc. Ils sont de différents types de données. 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 différents types dans le même emplacement mémoire. Une structure et une union sont similaires mais elles se différencient principalement en raison de 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.

Qu'est-ce que la structure en C ?

Une structure est un type de données défini par l'utilisateur en C. Il permet de combiner des éléments de données de différents types. Une structure peut représenter des enregistrements. Un étudiant peut avoir étudiant_id, étudiant_nom, etc. Plutôt que de stocker chaque variable séparément, tous ces différents é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 Étudiant {

intstudent_id;

char nom_étudiant[20];

};

Pour la structure ci-dessus, les variables peuvent être déclarées comme suit.

struct Étudiant étudiant1, étudiant2, étudiant3;

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 structure_variable_name. nom de membre. Si le programmeur souhaite accéder au nom de l'étudiant 2, il peut écrire l'instruction sous la forme printf(student2.student_namename);

Reportez-vous au programme ci-dessous avec une structure.

Différence entre structure et union en C
Différence entre structure et union en C

Figure 01: Programme C avec structures

Selon le programme ci-dessus, Student est une structure. Il contient student_id et student_name. Deux variables de type structure sont déclarées dans le programme principal. Ils sont appelés étudiant1 et étudiant2. L'identifiant de l'étudiant1 est attribué avec la valeur 1 en utilisant l'opérateur de membre comme étudiant1.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 de l'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. Le student_id contient 4 octets et student_name contient 20 octets (un octet chacun pour un caractère). Le total de 24 octets correspond à la somme de la taille de la mémoire requise par la structure.

Qu'est-ce que l'union en C ?

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 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 un livre d'union de données dérivées.

unionBook{

char nom[20];

double prix;

};

Pour l'union ci-dessus, les variables peuvent être déclarées comme suit.

union Livre livre1, livre2;

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 (->). Les membres sont accessibles à l'aide de union_variable_name. nom de membre. Si le programmeur souhaite accéder au nom du livre1, il peut alors écrire l'instruction sous la forme printf(book1.name);

Référez le programme ci-dessous avec un syndicat.

Différence entre structure et union en C_Figure 02
Différence entre structure et union en C_Figure 02

Figure 02: Programme C utilisant union

Selon le programme ci-dessus, le Livre est une union. Le livre1 est une variable de type union. Le nom et le prix sont des valeurs assignées. Dans union, un seul de ses membres est accessible à la fois et tous les autres membres auront des valeurs parasites. La valeur de l'identifiant ne s'imprime pas correctement mais la valeur du prix s'imprime correctement.

Différence clé entre la structure et l'union en C
Différence clé entre la structure et l'union en C

Figure 03: Programme C modifié avec union

Selon le programme ci-dessus, Book est un syndicat. Le livre1 et le livre2 sont des variables de type union. Tout d'abord, la valeur du nom du livre1 est attribuée et elle est imprimée. Ensuite, la valeur du nom du livre2 est attribuée et elle est imprimée. Tous les membres s'impriment correctement car un seul 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 de 20 octets. C'est plus grand que le prix. Ainsi, l'allocation de mémoire pour l'union est de 20 octets.

Quelles sont les similitudes entre la structure et l'union en C ?

  • La structure et l'union en C sont des types de données définis par l'utilisateur.
  • La structure et l'union en C peuvent être utilisées pour stocker différents types de données dans le même emplacement mémoire.

Quelle est la différence entre structure et union en C ?

Structure vs Union en C

Structure est un type de données défini par l'utilisateur en langage C qui permet de combiner des données de différents types. Union est un type de données défini par l'utilisateur en langage C qui permet de combiner des données de différents types.
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’.

Résumé – Structure vs Union en C

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 mémoire. Le langage de programmation C fournit la structure et l'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.

Conseillé: