Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Structures vs Unions en C : Guide pratique

Qu'est-ce qu'une structure ?

Une structure est un type de données défini par l'utilisateur en C qui regroupe des éléments de données logiquement liés de types différents en une seule unité. Chaque membre occupe sa propre emplacement mémoire contigu, donc une structure peut contenir plusieurs valeurs simultanément.

Exemple : un enregistrement d'étudiant qui stocke un nom, numéro de matricule et notes sous un seul nom de variable.

Qu'est-ce qu'une union ?

Une union est aussi un type défini par l'utilisateur, mais tous les membres partagent le même espace mémoire. La taille de l'union équivaut à la taille de son plus grand membre. Cette caractéristique rend les unions idéales pour les scénarios à mémoire contrainte où un seul membre est nécessaire à la fois.

Déclaration d'une structure

struct Student {
    char name[60];
    int roll_no;
    float marks;
};

Remarquez l'utilisation du mot-clé struct et le point-virgule après l'accolade fermante.

Exemple : Utilisation d'une structure

#include <stdio.h>
struct Student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main(void) {
    printf("Enter the following information:\n");
    printf("Student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Roll number: ");
    scanf("%d", &sdt.roll_no);
    printf("Marks: ");
    scanf("%f", &sdt.marks);
    printf("\nEntered data:\n");
    printf("Name: %s", sdt.name);
    printf("Roll number: %d\n", sdt.roll_no);
    printf("Marks: %.1f\n", sdt.marks);
    return 0;
}

Sortie (exemple) :

Enter the following information:
Student name: James
Roll number: 21
Marks: 67
Entered data:
Name: James
Roll number: 21
Marks: 67.0

Déclaration d'une union

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

Exemple : Utilisation d'une union

#include <stdio.h>
union Item {
    int x;
    float y;
    char ch;
};
int main(void) {
    union Item it;
    it.x = 12;
    it.y = 20.2f;
    it.ch = 'a';
    printf("x = %d\n", it.x);
    printf("y = %f\n", it.y);
    printf("ch = %c\n", it.ch);
    return 0;
}

Puisque tous les membres partagent la mémoire, la définition de ch écrase les valeurs précédentes de x et y. Seule la dernière valeur stockée est valide.

Structure vs Union

Structures vs Unions en C : Guide pratique
Caractéristique Structure Union
Mot-clé de déclarationstructunion
Disposition mémoireChaque membre a son propre espaceTous les membres partagent un espace
Modification d'un membreN'affecte pas les autresÉcrase les autres membres
InitialisationTous les membres peuvent être initialisés simultanémentSeul le premier membre peut être initialisé à la fois
Taille totaleSomme de toutes les tailles des membresTaille du plus grand membre
Utilisation typiqueStocker des données liées de types variésStocker l'un de plusieurs types possibles
Modèle d'accèsTout membre accessible à tout momentUn seul membre valide à la fois
Support tableau flexibleSupportéNon supporté

Quand utiliser chacun

Avantages et inconvénients

Avantages des structures

Inconvénients des structures

Avantages des unions

Inconvénients des unions

Langue C

  1. Amiante vs Fibre de Verre : Différences Clés, Utilisations et Considérations de Sécurité
  2. Struct vs Class en C++ : Différences Clés, Syntaxe et Cas d'Utilisation Optimaux
  3. C# vs C++ : Comparaison claire des fonctionnalités, performances et cas d'usage
  4. C vs C++ : Différences clés et quand choisir chacun
  5. C vs Java : Comparatif complet des fonctionnalités, de l'histoire et des applications
  6. strlen() vs sizeof() en C : Comprendre leurs différences et usage correct
  7. Comprendre les Moteurs DC vs AC : Différences Clés et Guide d'Achat
  8. Brasage vs Soudure : Différences Clés Expliquées
  9. Moteurs 2 temps vs 4 temps : différences clés expliquées