Menu
CoddyTech

Déclarer une Struct

Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 39 sur 63.

Maintenant que tu comprends ce qu’est une struct, il est temps d’apprendre à créer tes propres types de structures. Déclarer une struct en C suit une syntaxe spécifique qui définit le modèle de ton type de données personnalisé.

La syntaxe de base pour déclarer une struct est :

struct StructureName {
    datatype member1;
    datatype member2;
    // ... autres membres
};

Voici comment fonctionne chaque partie : tu commences par le mot-clé struct, suivi d’un nom pour ta structure, puis tu listes toutes les variables membres entre accolades. Chaque membre est déclaré comme une variable ordinaire, avec son type de données et son nom. N’oublie pas le point-virgule après l’accolade fermante !

Par exemple, pour créer une structure qui représente un point dans un espace 2D :

struct Point {
    int x;
    int y;
};

Cette déclaration crée un nouveau type de données appelé struct Point, qui contient deux membres entiers : x et y. Une fois déclaré, ce type de structure peut être utilisé dans l’ensemble de votre programme pour créer des variables qui stockent des coordonnées de manière organisée.

challenge icon

Défi

Facile

Crée un programme C qui définit une struct pour représenter un livre dans un système de bibliothèque. Ton programme doit :

  1. Définir une struct nommée Book qui contient les membres suivants :
    • Un entier id pour stocker le numéro d’identification du livre
    • Un tableau de caractères title de taille 50 pour stocker le titre du livre
    • Un entier pages pour stocker le nombre de pages
    • Un nombre à virgule flottante price pour stocker le prix du livre
  2. Après avoir défini la struct, afficher un message de confirmation : Book struct defined successfully!
  3. Afficher la taille de la struct Book en octets à l’aide de sizeof(struct Book), selon le format : Size of Book struct: [size] bytes
  4. Afficher la taille de chaque membre individuellement en passant son type à sizeof(), par exemple sizeof(int) pour id, sizeof(char[50]) pour title et sizeof(float) pour price :
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size of price: [size] bytes

Les membres totalisent 62 octets, mais sizeof(struct Book) renvoie 64 : le compilateur ajoute 2 octets de remplissage après title afin que pages commence à un multiple de 4.

Ce défi teste ta compréhension de la syntaxe de déclaration d’une struct, notamment l’utilisation correcte du mot-clé struct, les déclarations de membres avec des types de données appropriés et le point-virgule après l’accolade fermante. Tu découvriras également comment C alloue la mémoire des membres d’une struct à l’aide de l’opérateur sizeof().

N’oublie pas que les valeurs exactes des tailles peuvent varier selon l’architecture de ton système, mais que la syntaxe de définition de la struct doit être correcte pour que le programme compile et s’exécute correctement.

Essayez vous-même

#include <stdio.h>

int main() {
    // TODO: Définissez ici votre struct Book
    
    
    // Affichez le message de confirmation
    printf("Book struct defined successfully!\n");
    
    // TODO: Affichez la taille de la struct Book et de ses membres
    
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur C en ligne