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 :

Global ou pointeur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Par défaut Global ou pointeur
    Salut tout le monde,

    Je me suis mis à l'embarqué et j'ai une pitit question...

    J'ai un fichier Gestion.c qui fait ttes mes gestions. J'appelle les fonctions normalements dans mon main. Mais vaut il mieux que tt les variables utilisées dans le fichier gestion soit mises en globales ou alors instanciées dans le main et les faire passer par pointeurs quand besoin en est?

    Pitch

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par pitch21
    Salut tout le monde,

    Je me suis mis à l'embarqué et j'ai une pitit question...

    J'ai un fichier Gestion.c qui fait ttes mes gestions. J'appelle les fonctions normalements dans mon main. Mais vaut il mieux que tt les variables utilisées dans le fichier gestion soit mises en globales ou alors instanciées dans le main et les faire passer par pointeurs quand besoin en est?

    Pitch
    Difficile à répondre, cela dépend de la gestion de la mémoire. Dans l'embarqué il y a différents modéles mémoire possible, du coup aucune réponse exacte ne sera possible.

    Il faudra tester et voir ce qui est le mieux pour ton système embarqué.

    Généralement, un pointeur vers une structure globale avec les paramètres de ton programme passée en paramètre est une bonne solution et celle que j'adopte le plus souvent.

    Jc

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par pitch21
    Je me suis mis à l'embarqué et j'ai une pitit question...

    J'ai un fichier Gestion.c qui fait ttes mes gestions. J'appelle les fonctions normalements dans mon main. Mais vaut il mieux que tt les variables utilisées dans le fichier gestion soit mises en globales ou alors instanciées dans le main et les faire passer par pointeurs quand besoin en est?
    Pour une bonne organisation et un meilleur contrôle des données, il est préférable de travailler par contexte (structure, pointeur). Si le bloc de données est important, il peut être défini de manière statique dans le main(), ça évitera d'occuper la pile inutilement (souvent limitée en embarqué). De plus, il sera initialisé par défaut ce qui peut être intéressant ou non, selon les cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    struct data
    {
       int x;
       char y[16];
    };
     
    void f(struct data *this)
    {
       /* ... */
    }
     
    int main (void)
    {
       static struct data;
     
       f(&data);
       return 0;
    }

Discussions similaires

  1. Réponses: 40
    Dernier message: 15/05/2014, 21h51
  2. Réponses: 6
    Dernier message: 28/08/2011, 01h39
  3. variables globales/locales et pointeurs.
    Par fiofiotte dans le forum C
    Réponses: 11
    Dernier message: 19/11/2010, 22h58
  4. Les pointeurs global
    Par spiner900 dans le forum Débuter
    Réponses: 10
    Dernier message: 25/02/2009, 23h49
  5. Problème avec un pointeur global sur une variable manager
    Par sepullayer dans le forum C++/CLI
    Réponses: 12
    Dernier message: 26/03/2007, 13h00

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