Sommaire

Union de structures

Un union, dans le fond, ressemble à un emboîtement de poupées russes. L’espace mémoire est celui de la plus grande et il peut en contenir de plus petites. Avec des structures, en jouant sur ce principe d’emboîtement, nous pouvons constituer une entité qui peut prendre des types différents et ainsi obtenir des tableaux d’objets différents en C.

Pour ce faire, il convient de doter chaque structure constitutive de l’union d’un ou de plusieurs champs communs afin de les identifier dans le programme avec, par exemple, un champ type, mais aussi afin éventuellement de pouvoir les utiliser simultanément, indépendamment de leurs différents types.

Soit par exemple un jeu dans lequel nous avons des ennemis qui peuvent avoir quatre types différents : Dragon, Troll, Nain, Orc.

Tous les quatre possèdent des caractéristiques communes :

  • une variable pour identifier la nature de l’ennemi (1 dragon, 2 troll, 3 nain, 4 orc), nous la nommons type ;

  • une position x et y ;

  • un déplacement dx, dy.

En plus de ce tronc commun, chaque type d’ennemi possède des caractéristiques bien à lui :

  • deux variables flamme et cuirasse pour le type Dragon.

  • muscle et masse pour le type Troll.

  • hache et barde pour le Nain.

  • poignard et griffes pour l’Orc.

Nous pouvons bien sûr définir normalement une structure pour chaque type et répéter pour chacune le tronc commun. Dans la plupart ...