Sommaire

Structures et fonctions

Questions

Voici quelques questions pour vous aider à synthétiser et retenir des contenus qui nous paraissent essentiels dans cette section :

Une fonction peut-elle retourner une structure ?

Comme récupérer une structure retournée ?

Une fonction peut-elle avoir une structure en paramètre ?

Quelle valeur passer à un paramètre structure ?

1. Retourner une structure

Comme la copie de structure est autorisée, les structures peuvent être prises comme valeur de retour. Soit la structure coord :

typedef struct coord{ 
    int x, y; 
}coord;

Voici typiquement une fonction qui permet d’initialiser une structure après sa déclaration n’importe où dans le programme :

    coord init_point1() 
    { 
    coord t0; 
        t0.x = rand()%1024; 
        t0.y = rand()%768; 
        return t0; 
    }

Dans la fonction :

  • une structure du type souhaité est déclarée,

  • chacun de ses champs est initialisé avec des valeurs aléatoires ou calculées,

  • pour finir, la structure résultante est retournée au contexte d’appel.

Bien sûr des valeurs peuvent être transmises en paramètres, cela donne par exemple :

coord init_point2(int x, int y) 
{ 
coord t0; 
    t0.x = x;  
    t0.y = y; 
    return t0; 
}

Et dans le programme, la structure retournée par la fonction est affectée à une structure du contexte d’appel :

#include <stdio.h>  ...