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

Différence entre la structure et l'union en C
Le langage de programmation C fournit aux programmeurs différents types de données pour stocker les données en mémoire pour le traitement. Parmi ces types de données, structures et syndicats, il y a deux données de données couramment utilisées dans la programmation C pour regrouper plusieurs variables de différents types de données en une seule unité. Les structures et les syndicats sont définis par le programmeur et servent des fins similaires. Cependant, ils diffèrent sous plusieurs aspects, notamment le stockage, l'allocation de la mémoire et l'utilisation.

L'article fournit une analyse comparative entre la structure et l'union dans le langage de programmation C.

Structure en c

Une structure en C est un type de données défini par l'utilisateur qui permet aux programmeurs de regrouper les variables de différents types de données en une seule entité. Une structure peut contenir des membres, qui peuvent être des variables de n'importe quel type de données, telles que des entiers, des flotteurs, des tableaux ou même d'autres structures. Pour déclarer une structure en C, vous devez utiliser le mot-clé «Structure» suivi du nom de la structure et de ses variables membre, comme indiqué dans l'exemple suivant:

Déclaration d'une structure en c

Ce qui suit est la déclaration de structure en programmation C.

struct_keyword struct_name
data_type1 membre1;
data_type2 membre2;
;

Union en C

Une union en C est également un type de données défini par l'utilisateur qui permet au programmeur de stocker différents types de données dans le même emplacement de mémoire. Contrairement aux structures, les syndicats n'ont qu'un seul emplacement mémoire qui est partagé par tous leurs membres. Par conséquent, un seul membre du syndicat peut y accéder en même temps. La taille d'un syndicat est mesurée par la taille de son plus grand membre.

Déclaration d'un syndicat en c

Voici un exemple de la façon de déclarer un syndicat en c.

Union_keyword Union_name
data_type1 membre1;
data_type2 membre2;
;

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

Le tableau suivant montre la différence entre la structure et l'union dans la programmation C.

Fonctionnalité Structure syndicat
Définition Collecte de membres de données connexes Le même emplacement de mémoire est partagé par tous les membres
Allocation de mémoire Alloue la mémoire à tous les membres Alloue la mémoire au plus grand membre
Initialisation des membres Peut être initialisé individuellement ou dans son ensemble Ne peut initialiser qu'un seul membre à la fois
Initialisation par défaut Les membres sont initialisés aux valeurs par défaut Les membres ne sont pas initialisés par défaut
Calcul de la taille La somme des tailles de tous les membres Taille du plus grand membre
Cas d'utilisation Utilisé pour stocker plusieurs types de données et y accéder ensemble Utilisé pour enregistrer la mémoire lorsque plusieurs types de données partagent le même emplacement de mémoire
Accéder aux membres En utilisant le nom et le point du membre (.) opérateur En utilisant le nom et le point du membre (.) opérateur

Ce qui suit est un exemple de codage qui illustre la différence entre la structure et l'union dans la programmation C.

#inclure
struct mystruct
int a;
Char B;
;
Union Myunion
int x;
char y;
;
int main()
struct mystruct mystruct;
mystruct.a = 10;
mystruct.b = 'a';
Union Myunion Myunion;
myunion.x = 10;
myunion.y = 'a';
printf ("Valeurs de structure:% d,% c \ n", mystruct.A, mystruct.b);
printf ("Valeurs syndicales:% d,% c \ n", Myunion.x, myunion.y);
retour 0;

Dans le code ci-dessus, nous avons défini une structure nommée Mystruct qui contient un entier et un personnage, et un syndicat nommé Myunion qui contient également un entier et un personnage. Nous créons ensuite des instances des deux Mystruct et Myunion et définir leurs valeurs. Nous avons défini la valeur entière des deux sur 10 et la valeur de caractère des deux à 'UN'.

Lorsque nous imprimons les valeurs de la structure et de l'union, nous pouvons voir que la structure a des variables distinctes pour l'entier et le caractère, et chaque variable conserve sa valeur. La sortie est indiquée ci-dessous:

Concurrence

La structure et l'union sont deux données différentes qui ont la syntaxe similaire dans le langage C. Ils sont différents dans certains aspects tels que le stockage, l'allocation de la mémoire, la convivialité et d'autres fonctionnalités. Cet article présente un guide facile pour trouver une comparaison détaillée entre la structure et l'union suivie d'exemples de codage qui différencient clairement les deux en programmation C.