Aller au contenu principal

Types et structures de contrôle

Progression

#Types et structures de contrôle avancés

Comprendre la variété des types en C est indispensable pour écrire un code portable. Nous détaillons les types scalaires et les promotions implicites qu’effectue le compilateur : pourquoi un char devient‑il automatiquement un int ? dans quels cas un float est-il promu en double ? Après cette remise à niveau, nous présentons les types précis de <stdint.h> et expliquons quand ils garantissent une taille stable — précieux pour les protocoles et la sérialisation.

Les tableaux et les chaînes sont abordés sous l’angle mémoire. Nous comparons les tableaux statiques et les VLA (introduits en C99, à manier avec précaution selon le compilateur), montrons comment les chaînes terminées par \0 sont stockées et revisitons les fonctions sûres (strncpy, snprintf) en soulignant leurs limites.

Enfin, nous consacrons un temps important aux structures de contrôle. Les boucles (for, while, do/while) sont remises en perspective avec des exercices qui mesurent le coût de chaque structure. Le switch est détaillé à travers un parseur simple d’options en ligne de commande, et nous discutons du rôle parfois décrié de goto : employed avec discipline pour simplifier les sorties multiples d’une fonction qui alloue des ressources, il reste une construction utile.

#Exercices

  • Implémentez un scanner qui parcourt une chaîne et compte les tokens.
  • Utilisez un switch avec enum pour piloter un mini moteur d’état.