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 :

Static


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Par défaut Static
    Bonjour !

    J'aurais juste une petite question ! j'ai une variable globale qui est déclarée ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier.h :
    extern unsigned int load [10];
    fichier.c :
    unsigned int load [];
    ce que je voudrai c'est mettre cette variable en static, comment je doit faire? ou alors est-ce que c'est implicite de la mettre en static puisque c'est une variable globale?

    merci.

  2. #2
    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 Re: Static
    Citation Envoyé par Drahl
    J'aurais juste une petite question ! j'ai une variable globale qui est déclarée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier.h :
    extern unsigned int load [10];
    fichier.c :
    unsigned int load [];
    ce que je voudrai c'est mettre cette variable en static, comment je dois faire?
    Supprimer la déclaration dans le .h
    Définir la variable globale static (donc de portée limitée au module) dans fichier.c :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static unsigned int load [10];

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Par défaut
    Non ma variable est utilisée par plusieur fichier.c donc je ne peut pas la déclarer en locale.

  4. #4
    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 Drahl
    Non ma variable est utilisée par plusieur fichier.c donc je ne peut pas la déclarer en locale.
    Je n'ai pas parlé de 'locale', mais de 'static'.

    Je ne comprend pas ce que tu veux faire. La variable doit être visible de partout et tu veux la définir 'static' ? C'est à priori incompatible (à moins de passer par un accès indirect qui peut être en lecture seule ou en lecture/ecriture).

    Que veux-tu faire exactement ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Par défaut
    Ce que tu viens de dire en fait, je souhaite avoir une variable visible de partout et la définir en static, mais d'un coté ca me parrais logique qu'elle soit static implicitement !!

    En fait c'est pour etre sur que ma variable ne va pas etre déplacée ou écrasée par autre chose.

  6. #6
    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 Drahl
    Ce que tu viens de dire en fait, je souhaite avoir une variable visible de partout et la définir en static, mais d'un coté ca me parrais logique qu'elle soit static implicitement !!

    En fait c'est pour etre sur que ma variable ne va pas etre déplacée ou écrasée par autre chose.
    Tu ne serais pas en train de confondre 'static' et 'statique' ?

    Une variable définie hors d'un bloc est de durée de vie 'statique' c'est à dire permanente (elle existe avant le main() et jusqu'à la fin de exit().

    Sa portée par défaut est, globale, mais elle peut être réduite au module par le mot clé 'static'.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Par défaut
    je crois que tu viens de me faire comprendre un de mes probléme en C !! en effet je comprenais pas ce que signifier exactement "static" !!

    merci pour ton aide

  8. #8
    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 Drahl
    je crois que tu viens de me faire comprendre un de mes probléme en C !! en effet je comprenais pas ce que signifier exactement "static"
    Je suggère une relecture complète du K&R edition 2 une ou deux fois par an...
    Certaines choses qu'on a pas compris la fois précédente (ce qui se conçoit tout à fait) deviennent limides avec l'expérience..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. thread et méthodes static
    Par sylpichard dans le forum MFC
    Réponses: 3
    Dernier message: 02/06/2004, 17h12
  2. Problème avec l'option -static de gcc
    Par lsdInside dans le forum Linux
    Réponses: 2
    Dernier message: 08/05/2004, 01h01
  3. [Débutant(e)] JSP utilisation static....une autre
    Par tcgenrecom dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/03/2004, 15h27
  4. Mais que fait static ???
    Par elsargento dans le forum C
    Réponses: 4
    Dernier message: 25/09/2003, 09h55
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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