/** * Exemple de code avec strucure de données * * Passage de coordonnées cylindriques vers coordonnées cartésiennes * * * * */ #include #include #include // déclaration simple struct sCoordCart { float x, y, z ; char *nom ; } ; // déclaration avec redéfinition de type typedef struct sCoordCyl { float r, alpha, z ; char *nom ; } CoordCyl ; // conversion de ccordonnées cylindriques vers coordonnées cartésiennes struct sCoordCart convert (CoordCyl p) { struct sCoordCart res ; res.x = p.r*cos(p.alpha) ; res.y = p.r*sin(p.alpha) ; res.z = p.z ; res.nom=p.nom ; // Attention passage de pointeurs et non recopie... return res ; } // programme principal de validation. int main() { struct sCoordCart pointA_cart ; CoordCyl pointA_cyl={1, M_PI/3.0, 2, "pointA"} ; pointA_cart = convert(pointA_cyl) ; printf ("%s en coordonné cartésienne : [%f %f %f]\n", pointA_cart.nom, pointA_cart.x, pointA_cart.y, pointA_cart.z ) ; return (EXIT_SUCCESS); }