16.5.2 Passage en paramètre de variables structurées

L'utilisation de variables structurées rend le programme beaucoup plus évolutif : on peut à tout moment ajouter un champ supplémentaire dans le modèle de structure, sans modifier les appels, les prototypes et les en‐tête de fonctions ; seuls les corps des fonctions qui utilisent le champ rajouté seront à compléter. La norme ISO actuelle autorise : – la transmission en paramètre d'une variable structurée par valeur (la fonction ne manipule que la copie de la valeur) ou par adresse (la fonction peut modifier la variable originale en utilisant un pointeur) ; – le renvoi par une fonction d'une valeur de type structurée. Dans les anciens compilateurs, seule la transmission par adresse des structures était autorisée (comme pour les tableaux). Une valeur retournée de type structurée était aussi interdite.
Dans le cas d'un passage de paramètre par adresse, la fonction appelée récupère une adresse de variable structurée, c'est‐à‐dire un pointeur sur une structure. Un tel pointeur se définit par nom_type_struct *ptr. ptr‐>champ
(voir dessin plus bas et l’exemple complet avec fichier en-tête en fin de chapitre)
|