Variables et fonctions. Déclaration & Accéssibilité ! [Résolu]

Signaler
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013
-
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013
-
Bonsoir,
je souhaiterai savoir comment accédé a une variable déclaré dans une autre fonction.
Faut t'il le spécifier lors de la déclaration de la variable dans la fonction,
ou faut t'il plutot le spécifier lors de la tentative de lecture de la variable?

Exemple :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void test( void )
{
    déclaration de la variable Azerty;
                               Azerty = le_contenue;
};

int main( void )
{
    test();
    lecture_de Azerty;
};
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2 réponses

Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008

Une variable locale (déclarée dans une fonction) est par définition hors de portée (inaccessible) pour les autres fonctions. Si tu souhaites lire ta variable azerty:
- soit test() retourne cette variable et alors elle peut etre lue par la fonction appelant test().

Exemple si azerty est un int:

int test( void )
{
   int Azerty;
   Azerty = 4;
   return azerty;

};

int main( void )
{
   int valeur_lue;
   valeur_lue = test();
};

- soit tu crées une variable globale, c'est à dire déclarée en dehors de toute fonction et donc à portée (accessible) de toute les fonctions. Cependant cette méthode n'est en général pas tres conseillée car dangereuse, on controle assez mal la valeur de azerty.

Exemple:

int Azerty;

void test( void )
{
   Azerty = 4;
};

int main( void )
{
   int valeur_lue;
   test();

   valeur_lue = azerty;
}

- soit tu passes ta variable en parametre de test(). Tu dois alors manipuler les pointeurs car sinon tu modifie une copie de azerty et pas azerty elle-meme.

Exemple:

void test( int * azerty )
{
   *azerty = 4;

};

int main( void )
{
   int valeur_lue;
   
   test( & valeur_lue );
};

- si tu travailles en C++ tu peux utiliser les références au lieu des pointeurs, c'est souvent plus pratique.

Exemple:

void test( int & azerty )
{
   azerty = 4;

};

int main( void )
{
   int valeur_lue;
   
   test( valeur_lue );
};
<endl></endl>
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013

Merci , pour l'info.....