Définir une structure



Une structure est un assemblage de variables qui peuvent avoir différents types. Contrairement aux tableaux qui vous obligent à utiliser le même type dans tout le tableau, vous pouvez créer une structure comportant des variables de types longcharint et double à la fois.

Les structures sont généralement définies dans les fichiers .h, au même titre donc que les prototypes et les define. Voici un exemple de structure :

struct NomDeVotreStructure

{

    int variable1;

    int variable2;

    int autreVariable;

    double nombreDecimal;

};



Une définition de structure commence par le mot-clé struct, suivi du nom de votre structure (par exemple Fichier, ou encore Ecran).


J'ai personnellement l'habitude de nommer mes structures en suivant les mêmes règles que pour les noms de variables, excepté que je mets la première lettre en majuscule pour pouvoir faire la différence. Ainsi, quand je vois le mot ageDuCapitaine dans mon code, je sais que c'est une variable car cela commence par une lettre minuscule. Quand je vois MorceauAudio je sais qu'il s'agit d'une structure (un type personnalisé) car cela commence par une majuscule.


Après le nom de votre structure, vous ouvrez les accolades et les fermez plus loin, comme pour une fonction.


Attention, ici c'est particulier : vous DEVEZ mettre un point-virgule après l'accolade fermante. C'est obligatoire. Si vous ne le faites pas, la compilation plantera.


Et maintenant, que mettre entre les accolades ?


C'est simple, vous y placez les variables dont est composée votre structure. Une structure est généralement composée d'au moins deux « sous-variables », sinon elle n'a pas trop d'intérêt.

Comme vous le voyez, la création d'un type de variable personnalisé n'est pas bien complexe. Toutes les structures que vous verrez sont en fait des « assemblages » de variables de type de base, comme longintdouble, etc. Il n'y a pas de miracle, un type Fichier n'est donc composé que de nombres de base !

Exemple de structure


Imaginons par exemple que vous vouliez créer une variable qui stocke les coordonnées d'un point à l'écran. Vous aurez très certainement besoin d'une structure comme cela lorsque vous ferez des jeux 2D dans la partie suivante, c'est donc l'occasion de s'avancer un peu.

Pour ceux chez qui le mot « géométrie » provoque des apparitions de boutons inexplicables sur tout le visage, la fig. suivante va faire office de petit rappel fondamental sur la 2D.





Lorsqu'on travaille en 2D (2 dimensions), on a deux axes : l'axe des abscisses (de gauche à droite) et l'axe des ordonnées (de bas en haut). On a l'habitude d'exprimer les abscisses par une variable appelée x, et les ordonnées par y.

Êtes-vous capables d'écrire une structure Coordonnees qui permette de stocker à la fois la valeur de l'abscisse (x) et celle de l'ordonnée (y) d'un point ?


Allons, allons, ce n'est pas bien difficile :

struct Coordonnees

{

    int x; // Abscisses

    int y; // Ordonnées

};


Notre structure s'appelle Coordonnees et est composée de deux variables, x et y, c'est-à-dire de l'abscisse et de l'ordonnée.

Si on le voulait, on pourrait facilement faire une structure Coordonnees pour de la 3D : il suffirait d'ajouter une troisième variable (par exemple z) qui indiquerait la hauteur. Avec ça, nous aurions une structure faite pour gérer des points en 3D dans l'espace !

Tableaux dans une structure



Les structures peuvent contenir des tableaux. Ça tombe bien, on va pouvoir ainsi placer des tableaux de char (chaînes de caractères) sans problème !


Allez, imaginons une structure Personne qui stockerait diverses informations sur une personne :

struct Personne

{

    char nom[100];

    char prenom[100];

    char adresse[1000];

    

    int age;

    int garcon; // Booléen : 1 = garçon, 0 = fille

};


Cette structure est composée de cinq sous-variables. Les trois premières sont des chaînes qui stockeront le nom, le prénom et l'adresse de la personne.


Les deux dernières stockent l'âge et le sexe de la personne. Le sexe est un booléen, 1 = vrai = garçon, 0 = faux = fille.

Cette structure pourrait servir à créer un programme de carnet d'adresses. Bien entendu, vous pouvez rajouter des variables dans la structure pour la compléter si vous le voulez. Il n'y a pas de limite au nombre de variables dans une structure.

Créé avec HelpNDoc Personal Edition: Éditeur complet de livres électroniques ePub