Menu
Coddy logo textTech

typedef avec les structures

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

L’une des applications les plus pratiques de typedef consiste à créer des alias pour les types struct. Cela évite de devoir écrire à répétition le mot-clé struct chaque fois que vous déclarez une variable de ce type, ce qui rend votre code plus propre et plus lisible.

Lorsque vous combinez typedef avec une définition de structure, vous pouvez créer un nouveau nom de type qui fait directement référence à la structure. Voici la syntaxe :

typedef struct Point {
    int x;
    int y;
} Point;

Maintenant, au lieu d’écrire struct Point p1; chaque fois que vous avez besoin d’une variable Point, vous pouvez simplement écrire Point p1;. Les deux déclarations accomplissent exactement la même chose, mais la version avec typedef est plus concise et plus facile à lire.

Cette approche est particulièrement utile dans les programmes plus volumineux où vous travaillez fréquemment avec des types de données personnalisés. Elle donne à votre code une apparence plus proche de celle d’autres langages de programmation et réduit l’encombrement visuel lié à la saisie répétée de struct dans votre programme.

challenge icon

Défi

Facile

Créez un programme C qui montre comment utiliser typedef avec des structures pour créer un système simple d’inventaire de livres. Votre programme doit :

  1. Définir une struct nommée Book avec les membres suivants :
    • Un entier id
    • Un tableau de caractères title de taille 50
    • Un flottant price
    • Un entier quantity
  2. Utiliser typedef pour créer un alias de type nommé Book pour la struct Book
  3. Dans la fonction main :
    • Déclarer deux variables de type Book nommées book1 et book2
    • Lire les données du premier livre dans cet ordre : ID, titre, prix, quantité
    • Attribuer ces valeurs aux membres de book1
    • Lire les données du deuxième livre dans cet ordre : ID, titre, prix, quantité
    • Attribuer ces valeurs aux membres de book2
    • Afficher les informations des deux livres dans ce format exact :
      • Book 1: ID=[id], Title=[title], Price=[price], Quantity=[quantity]
      • Book 2: ID=[id], Title=[title], Price=[price], Quantity=[quantity]
    • Calculer et afficher la valeur totale de l’inventaire de chaque livre (prix × quantité) dans ce format exact :
      • Book 1 Total Value: [total_value]
      • Book 2 Total Value: [total_value]
    • Calculer et afficher la valeur combinée de l’inventaire des deux livres dans ce format exact : Combined Inventory Value: [combined_value]
    • Déterminer et afficher quel livre a la valeur totale la plus élevée :
      • Si la valeur totale de book1 est la plus élevée : afficher Book 1 has higher value
      • Si la valeur totale de book2 est la plus élevée : afficher Book 2 has higher value
      • Si les deux ont la même valeur : afficher Both books have equal value

Ce défi montre comment typedef avec les structures évite d’avoir à réécrire struct Book à plusieurs reprises dans votre programme. Au lieu de déclarer des variables comme struct Book book1;, vous pouvez simplement écrire Book book1;, ce qui rend votre code plus clair et plus lisible. Vous vous exercerez à combiner la définition d’une structure avec typedef, à travailler avec les membres d’une structure et à effectuer des calculs à l’aide de données de structure.

Essayez vous-même

#include <stdio.h>
#include <string.h>

// TODO: Définissez votre struct et typedef ici

int main() {
    // TODO: Déclarez vos variables Book ici
    
    // Lire l'entrée pour le premier livre
    int id1, quantity1;
    char title1[50];
    float price1;
    
    scanf("%d", &id1);
    scanf("%s", title1);
    scanf("%f", &price1);
    scanf("%d", &quantity1);
    
    // TODO: Assignez les valeurs aux membres de book1
    
    // Lire l'entrée pour le second livre
    int id2, quantity2;
    char title2[50];
    float price2;
    
    scanf("%d", &id2);
    scanf("%s", title2);
    scanf("%f", &price2);
    scanf("%d", &quantity2);
    
    // TODO: Assignez les valeurs aux membres de book2
    
    // TODO: Affichez les informations du livre, calculez les valeurs et comparez
    
    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