Différence entre structure et union en C

Qu'est-ce que Structurer ?

La structure est un type de données défini par l'utilisateur dans le langage de programmation C qui combine des éléments de données logiquement liés de différents types de données.

Tous les éléments de structure sont stockés à des emplacements mémoire contigus. La variable de type structure peut stocker plusieurs éléments de données de différents types de données sous un même nom.

Qu'est-ce que l'Union

L'union est un type de données défini par l'utilisateur, tout comme une structure. Union combine des objets de différents types et tailles. La variable union alloue un espace mémoire égal à l’espace pour contenir la plus grande variable d’union. Il permet à différents types d’objets de partager le même emplacement.

Syntaxe de déclaration de structure

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

La structure est dĂ©clarĂ©e Ă  l'aide du mot-clĂ© « struct Â» et du nom de la structure. Le numĂ©ro 1, le numĂ©ro 2 et le numĂ©ro 3 sont des membres individuels de la structure. La partie du corps se termine par un point-virgule (;).

Exemple de structure en programmation C

#include <stdio.h>
struct student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main() {
    printf("Enter the following information:\n");
    printf("Enter student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Enter student roll number: ");
    scanf("%d", & sdt. roll_no);
    printf("Enter students marks: ");
    scanf("%f", & sdt.marks);
    printf("The information you have entered is: \n");
    printf("Student name: ");
    printf("%s", sdt.name);
    printf("Student roll number: %d\n", sdt. roll_no);
    printf("Student marks: %.1f\n", sdt.marks);
    return 0;
}

Dans le programme ci-dessus, une structure appelĂ©e Ă©tudiant est créée. Cette structure comporte trois donnĂ©es membres : 1) nom (chaĂ®ne), 2) roll_no (entier) et 3) marques (flottant).

Après cela, une variable de structure sdt est créée pour stocker les informations sur les étudiants et les afficher sur l'écran de l'ordinateur.

Sortie :

Entrez les informations suivantes:

Entrez le nom de l'Ă©tudiant : James

Entrez le numĂ©ro de matricule Ă©tudiant : 21

Saisir les notes des Ă©lèves : 67

Les informations que vous avez saisies sont :

Nom de l'élève : Jean

Numéro de matricule étudiant : 21

Notes des Ă©tudiants : 67.0

Syntaxe de la déclaration d'union

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

L'union est dĂ©clarĂ©e Ă  l'aide du mot-clĂ© « union Â» et du nom de l'union. Le numĂ©ro 1, le numĂ©ro 2 et le numĂ©ro 3 sont des membres individuels du syndicat. La partie du corps se termine par un point-virgule (;).

Exemple d'union en programmation C

#include <stdio.h>

union item
{
    int x;
    float y;
    char ch;
};

int main( )
{
    union item it;
    it.x = 12;
    it.y = 20.2;
    it.ch = 'a';
    
    printf("%d\n", it.x);
    printf("%f\n", it.y);
    printf("%c\n", it.ch);
    
    return 0;
}

Sortie :

1101109601

20.199892

a

Dans le programme ci-dessus, vous pouvez voir que les valeurs de x et y sont corrompues. Seule la variable ch imprime le résultat attendu. En effet, dans l'union, l'emplacement mémoire est partagé entre tous les types de données membres.

Par conséquent, le seul membre de données dont la valeur est actuellement stockée occupera de l’espace mémoire. La valeur de la variable ch a enfin été stockée, donc la valeur du reste de la les variables est perdu.

Structure contre. syndicat

Structure contre. syndicat
Structure contre. syndicat

Voici la différence importante entre structure et union :

Structure syndicat
Vous pouvez utiliser un mot-clé struct pour définir une structure. Vous pouvez utiliser un mot-clé union pour définir une union.
Chaque membre de la structure se voit attribuer un emplacement mémoire unique. En union, un emplacement mémoire est partagé par tous les membres de données.
La modification de la valeur d’un membre de données n’affectera pas les autres données membres de la structure. La modification de la valeur d’un membre de données modifiera la valeur des autres données membres de l’union.
Il vous permet d'initialiser plusieurs membres Ă  la fois. Il vous permet d'initialiser uniquement le premier membre de l'union.
La taille totale de la structure est la somme de la taille de chaque donnée membre. La taille totale de l’union est la taille du plus grand membre de données.
Il est principalement utilisé pour stocker divers types de données. Il est principalement utilisé pour stocker l’un des nombreux types de données disponibles.
Il occupe de l'espace pour chaque membre écrit dans les paramètres internes. Il occupe de l'espace pour un membre ayant la taille la plus élevée écrite dans les paramètres internes.
Vous pouvez récupérer n'importe quel membre à la fois. Vous pouvez accéder à un membre à la fois dans le syndicat.
Il prend en charge un tableau flexible. Il ne prend pas en charge un tableau flexible.

Avantages de la structure

Voici les avantages/avantages de l’utilisation de la structure :

  • Les structures rassemblent plusieurs Ă©lĂ©ments de donnĂ©es sur le mĂŞme sujet au mĂŞme endroit.
  • Ceci est utile lorsque vous souhaitez collecter des donnĂ©es de types de donnĂ©es et de paramètres similaires tels que le prĂ©nom, le nom, etc.
  • Il est très facile Ă  gĂ©rer car nous pouvons reprĂ©senter l’ensemble du dossier en utilisant un seul nom.
  • Dans la structure, nous pouvons transmettre un ensemble complet d'enregistrements Ă  n'importe quelle fonction en utilisant un seul paramètre.
  • Vous pouvez utiliser un tableau de structures pour stocker davantage d'enregistrements avec des types similaires.

Avantages du syndicat

Voici les avantages/avantages de l’utilisation de Union :

  • Il occupe moins de mĂ©moire que la structure.
  • Lorsque vous utilisez union, seule la dernière variable est directement accessible.
  • L'union est utilisĂ©e lorsque vous devez utiliser le mĂŞme emplacement mĂ©moire pour deux ou plusieurs donnĂ©es membres.
  • Il vous permet de conserver les donnĂ©es d’un seul membre de donnĂ©es.
  • Son espace allouĂ© est Ă©gal Ă  la taille maximale du membre de donnĂ©es.

Inconvénients de la structure

Voici les inconvĂ©nients/inconvĂ©nients de l’utilisation de la structure :

  • Si la complexitĂ© d’un projet informatique dĂ©passe les limites, il devient difficile Ă  gĂ©rer.
  • La modification d'une structure de donnĂ©es dans un code nĂ©cessite des modifications Ă  de nombreux autres endroits. Par consĂ©quent, les modifications deviennent difficiles Ă  implĂ©menter. track.
  • La structure est plus lente car elle nĂ©cessite de l'espace de stockage pour toutes les donnĂ©es.
  • Vous pouvez rĂ©cupĂ©rer n'importe quel membre Ă  la fois dans la structure alors que vous pouvez accĂ©der Ă  un membre Ă  la fois dans l'union.
  • La structure occupe de l'espace pour chaque membre Ă©crit dans les paramètres internes tandis que l'union occupe l'espace pour un membre ayant la taille la plus Ă©levĂ©e Ă©crite dans les paramètres internes.
  • La structure prend en charge un tableau flexible. Union ne prend pas en charge un tableau flexible.

Inconvénients du syndicat

Voici les inconvĂ©nients/inconvĂ©nients de l’utilisation de union :

  • Vous ne pouvez utiliser qu'un seul membre du syndicat Ă  la fois.
  • Toutes les variables d'union ne peuvent pas ĂŞtre initialisĂ©es ou utilisĂ©es avec des valeurs variables Ă  la fois.
  • L'Union attribue un espace de stockage commun Ă  tous ses membres.

DIFFÉRENCES CLÉS :

  • Chaque membre de la structure se voit attribuer un emplacement mĂ©moire unique, tandis qu'en union, un emplacement mĂ©moire est partagĂ© par tous les membres de donnĂ©es.
  • La modification de la valeur d'un membre de donnĂ©es n'affectera pas les autres donnĂ©es membres de la structure, tandis que la modification de la valeur d'un membre de donnĂ©es modifiera la valeur des autres donnĂ©es membres de l'union.
  • La structure est principalement utilisĂ©e pour stocker divers types de donnĂ©es, tandis que l'union est principalement utilisĂ©e pour stocker l'un des nombreux types de donnĂ©es.
  • En structure, vous pouvez rĂ©cupĂ©rer n'importe quel membre Ă  la fois, tandis qu'en union, vous pouvez accĂ©der Ă  un membre Ă  la fois.
  • La structure prend en charge un tableau flexible tandis que l'union ne prend pas en charge un tableau flexible.

Consultez Ă©galement notre didacticiel C pour les dĂ©butants : - Cliquez ici

Résumez cet article avec :