Voici un exemple manipulant une pile de registre (à la HP pour les connaisseurs).
Il est cependant à noter que le passage des structures à des fonctions n'est permis que par pointeur.
Toujours de mon téléphone
Ainsi le programme suivant, fonctionnel, utilise un appel avec passage de la structure pile par pointeur.
Code : Tout sélectionner
10 #define _ pile->
20 struct registre{
30 double x,y,z,t;};
40 main(){
50 /*Initialisation de la pile*/
60 struct registre pile;
70 /*prototype des fonctions avec la structure en parametre*/
80 void affich(struct registre *);
90 void rotat(struct registre *);
100 /*affectation de la pile*/
110 pile.x=1,pile.y=2,pile.z=3,pile.t=4;
120 /*appel affichage*/
130 affich(&pile);
140 /*appel rotation*/
150 rotat(&pile);
160 /*appel affichage*/
170 affich(&pile);
180 }
190 /*affichage pile*/
200 void affich(struct registre * pile){
210 printf("\npile: %g %g %g %g",_ x,_ y,_ z,_ t);
220 }
230 /*rotation pile*/
240 void rotat(struct registre * pile){
250 double temp=_ x;
260 _ x=_ y,_ y=_ z,_ z=_ t,_ t=temp;
270 }Code : Tout sélectionner
80 void affich(struct registre);Code : Tout sélectionner
200 void affich(struct registre pile){
210 printf("\npile: %g %g %g %g",pile.x,pile.y,pile.z,pile.t);
220 }








