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
avecenum
pour piloter un mini moteur d’état.