Un mot-clé dans divers langages de programmation dont la syntaxe est similaire ou dérivée de C (C ++, C #, Swift, Go, Rust, etc.). Utilisez une balise de langage de programmation spécifique pour baliser les questions impliquant l'utilisation d'un `struct` car la syntaxe et la sémantique peuvent dépendre du langage. Le mot-clé définit ou déclare un type de données composé d'autres types de données. Chaque membre d'une structure a sa propre zone de mémoire (par opposition à une «union» dont les membres partagent une seule zone de mémoire).

Un struct se compose d'une séquence de noms de champs et de leurs types (struct membres), par exemple:

struct s {
    int   *i;                // pointer to an int
    char  *s;                // pointer to a char
    double d;                // a double
    int (*pFunc)(char *, int);  // pointer to a function
};

Un struct peut également contenir des champs de bits pour permettre l'adressage de la mémoire au niveau des bits:

struct bits {
    unsigned int b1 : 1;
    unsigned int b2 : 1;
    unsigned int b3 : 1;
    unsigned int b4 : 1;
    unsigned int b5 : 1;
    unsigned int b6 : 1;
    unsigned int b7 : 1;
    unsigned int b8 : 1;
};

Chaque membre d'un struct a sa propre zone de mémoire par opposition à un union dans lequel les membres partagent la même zone de mémoire.

La syntaxe de définition / déclaration d'un struct ainsi que ce qu'il est possible d'inclure dans une définition / déclaration struct varie entre les différents langages de style C qui utilisent le mot-clé (par exemple, les fonctions membres non autorisées en C mais sont en C ++ bien que les deux autorisent un pointeur vers une fonction).

La syntaxe pour spécifier et utiliser un struct pour définir / déclarer des variables peut varier légèrement entre les différents langages de programmation de style C (s myVar; versus struct s myVar;)

Les langages dynamiques utilisent généralement une forme de tableau associatif à la place de struct. La famille de langages Pascal se réfère à ces types de dates comme record s.

Les références