Quelle est la différence entre Structure Union et Enum en C

La structure est un type de données qui stocke différents types de données dans le même emplacement de mémoire. la taille totale de la mémoire de la structure est la somme des tailles de mémoire de tous ses membres. En revanche, Union est un type de données qui stocke différents types de données dans le même emplacement de mémoire. la taille totale de la mémoire dépend de la taille de la mémoire de ses éléments les plus grands. Enum est un type de données qui stocke des constantes intégrales. C’est la principale différence entre structure union et enum en C.

En programmation, une variable peut stocker une valeur d'un seul type de données. Parfois, il est nécessaire de stocker des variables de types différents en une seule unité. Structure et union sont deux méthodes pour stocker plusieurs variables de types différents sous la forme d'une variable unique. D'autre part, enum est un type de données permettant de déclarer un ensemble de constantes nommées. Tous ces types de données sont définis par l'utilisateur.

Zones clés couvertes

1. Quelle est la structure
     - Définition, fonctionnalité
2. Quelle est l'union
    - Définition, fonctionnalité
3. Qu'est-ce que l'énum
    - Définition, fonctionnalité
4. Quelle est la différence entre Structure Union et Enum en C
    - Comparaison des différences clés

Mots clés

C, Enum, Structure, Union

Quelle est la structure

Une structure est une variable unique pouvant contenir des données de plusieurs types. C'est un ensemble de variables de types de données différents. Voici un exemple de structure.

Figure 1: Structure en C

Selon le programme ci-dessus, la structure appelée complexe contient deux propriétés; real représente la partie réelle du nombre complexe, tandis que img représente la partie imaginaire des nombres complexes. Dans le programme principal, la ligne 10 déclare deux variables de type struct appelées c1 et c2. Les lignes 11 à 14 donnent les valeurs réelle et img de c1 et c2. À la ligne 15, la variable r stocke la somme des valeurs réelles de c1 et c2. De même, à la ligne 16, la variable i stocke la somme des valeurs img de c1 et c2. Enfin, la somme des nombres complexes s’affiche sur la console.

Quelle est l'union

Union permet de stocker divers types de données dans le même emplacement de mémoire. Par exemple, un employé peut avoir des propriétés telles que nom, salaire et ville. Au lieu de créer des variables pour chacune d’elles, il est possible d’utiliser une union. Il compacte tous les types de données différents dans une seule unité.

Figure 2: Union en C

La distance entre deux points p1 et p2 est la suivante.  

Distance = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Selon le programme ci-dessus, Point est un syndicat. Il a deux propriétés: a et b. Dans le programme principal, distance, t1 et t2 sont des variables de type float; p1 et p2 sont de type union. Les lignes 12 à 15 donnent les valeurs a et b de p1 et a et b de p2. t1 et t2 sont des variables qui stockent les valeurs de puissance. Sur la ligne 18, la distance variable enregistre la distance entre les points p1 et p2. Enfin, la réponse s'affiche sur la console..

Union et Structure sont très similaires, mais ils ont une différence. Dans les unions, la mémoire totale requise pour stocker l'union est la mémoire du plus grand élément de cette union. Par exemple, supposons qu'un syndicat possède trois propriétés: nom, salaire et identifiant. Le nom prend 32 octets, et le salaire et l'identifiant prennent 4 octets chacun. Le plus grand est 32 octets et l'allocation mémoire pour l'union est de 32 octets.

Qu'est-ce que l'énum

Enum est synonyme d'énumération. Il s'agit d'un type de données défini par l'utilisateur composé de constantes intégrales. Un exemple est comme suit.

Figure 3: Énum en C

La semaine est un enum. Par défaut, dimanche a la valeur 0, lundi a la valeur 1, mardi a la valeur 2, etc. Dans le programme principal, aujourd'hui est un enum de type semaine. Il est assigné au vendredi. Le jour suivant est samedi et il a une constante 6. Par conséquent, la sortie «Jour 6» s’affiche sur la console..

Par exemple, supposons que le programmeur déclare l'énumération comme suit.

enum week dimanche = 1, lundi, mardi, mercredi, jeudi, vendredi, samedi;

Ensuite, le programme principal donnera le résultat sous la forme «Jour 7»..

Différence entre Structure Union et Enum en C

Définition

La structure est un type de données qui stocke différents types de données dans le même emplacement de mémoire et dont la taille totale de la structure correspond à la somme des tailles de mémoire de tous ses membres. En revanche, Union est un type de données qui stocke différents types de données dans le même emplacement de mémoire et dont la taille totale de la mémoire dépend de la taille de la mémoire de ses éléments les plus grands. Enum est un type de données en langage C qui représente un type de valeur pour déclarer un ensemble de constantes nommées. Ces définitions soulignent la différence fondamentale entre l’union de la structure et l’énumération en C.

Mot-clé

Le mot clé pour déclarer une structure est 'struct', tandis que le mot clé pour déclarer une union est 'union' et le mot clé pour déclarer un enum est 'enum'..

Usage

Il existe également une différence entre structure union et énumération en C en fonction de leur utilisation. La structure et l'union permettent de stocker des données de types différents sous forme d'une seule unité, tandis que enum permet d'affecter des constantes à un ensemble de noms afin de faciliter la lecture, la maintenance et la compréhension du programme.. 

Conclusion

La structure est un type de données qui stocke différents types de données dans le même emplacement de mémoire. la taille totale de la mémoire de la structure est la somme des tailles de mémoire de tous ses membres. En revanche, Union est un type de données qui stocke différents types de données dans le même emplacement de mémoire. la taille totale de la mémoire dépend de la taille de la mémoire de ses éléments les plus grands. Enum est un type de données qui stocke des constantes intégrales. C’est donc la principale différence entre structure union et enum en C.

Référence:

1. «Structure de programmation C». Chaînes Python (avec exemples), disponibles ici.
2. “C Programming Unions.” Python Strings (With Examples), disponible ici..
3. “C Programming Enumeration.” Python Strings (With Examples), disponible ici..