IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

définir une structure en extern


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 241
    Par défaut définir une structure en extern
    Bonjour, je suis amené à définir une structure, celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct{
         int n, m; /*n->lignes, m->colonnes*/
         COMPLEX **P;/*Matrice*/
     } *Matrice, structMatrice;
    en extern, c'est à dire que j'aimerai avoir un type Matrice extern, je ne sais pas trop comment faire, dois je déffinir int n, m; et COMPLEX **P; en extern? Y a t il plus simple?
    Merci beaucoup.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    extern est un mot-clé qui définit le lien d'une fonction ou d'une variable (i.e. que celle-ci est définie ailleurs que dans le fichier en cours).
    En aucun cas extern ne s'applique à un type.
    Donc tu définis ta structure (dans un fichier en-tete, par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    struct my_struct {
      int toto;
      float titi;
    };
    et ensuite tu déclares tes variables, avec s'il le faut le mot-clé extern.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern struct my_struct my_var;
    Tu pourrais compresser en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern struct my_struct { ... } my_car;
    mais tu devrais répéter la définition de la structure partout où tu l'utilises, ce qui est fastidieux et complique la maintenance.

    P.S. il est déconseillé d'utiliser des variables globales, qui compliquent la compréhension du code.

  3. #3
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par DaZumba
    P.S. il est déconseillé d'utiliser des variables globales, qui compliquent la compréhension du code.
    Et qui facilitent la creation d'erreurs.

    L'utilisation d'une variable globale n'est que rarement justifiable.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/01/2015, 23h57
  2. Bien définir une structure pour faciliter son utilisation
    Par charlebakhtovsky3 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 24/02/2011, 11h17
  3. Définir le type d'une structure contenue dans une classe
    Par vincentweb dans le forum Langage
    Réponses: 1
    Dernier message: 27/06/2009, 16h29
  4. Définir une structure en C
    Par direct dans le forum C
    Réponses: 7
    Dernier message: 07/05/2009, 22h03
  5. Définir une structure en extern
    Par fabpeden dans le forum C
    Réponses: 6
    Dernier message: 24/12/2008, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo