Arguments de fonctions

Les structures peuvent être passés comme arguments de fonctions de la même façon que tout autre type :

void fonction(struct fiche employe, int  n);

et le mot struct est facultatif. Cependant, le passage d’une structure peut poser problème, puisqu’il s’agit souvent d’éléments volumineux en mémoire. C’est pourquoi on préfère en général passer les structures sous la forme de pointeurs :

void fonction(fiche *pempl, int n);

ou de références :

void fonction(fiche &employe, int n);

Evidemment, de tels passages sont obligatoires si la fonction doit avoir un effet de bord modifiant la structure. Dans le cas contraire, on aura intérêt à préciser le pointeur ou la référence comme désignant une structure constante, à l’aide du mot const, comme on l’a dit au chapitre précédent.

Lorsqu’une structure est passée entièrement, c’est-à-dire par valeur, certains compilateurs C++ émettent un avertissement : Warning : Structure passed by value. C’est le moment ou jamais de réfléchir si ce passage par valeur est réellement nécessaire. Dans l’affirmative, il suffit d’ignorer le message.

Précédent Précédent Sommaire Sommaire Suivant Suivant