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 :

Accès à une variable externe


Sujet :

C

  1. #1
    Membre habitué
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut Accès à une variable externe
    bonsoir

    j'ai deux .c : test1.c et test2.c
    comment je peux utiliser les variables de l'un dans l'autre? je m'explique plus : dans test1.c j'ai une valeur à trouver que je met dans "var" , cette valeur j'aimerai l'utiliser dans test2.c, comment je peux accéder à la variable var ?
    merci

  2. #2
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Bonsoir,

    Il faut que le test2.c connaisse cette variable. Pour cela, il faut déclarer un fichier test1.h dans lequel sera déclaré en type extern ta variable var.
    Code test1.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int var = 0 ;
     
    void fonctionTest1(void)
    {
        var = 2 ;
    }
    Code test1.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /*
      rendre accessible cette variable tous modules
      ayant fait un include de test1.h
    */
    extern int var ;
    extern void fonctionTest1(void) ;
    Code test2.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "test1.h"
    void main(void)
    {
        fonctionTest1() ;
        printf("var = %d\n", var) ;
        var = 5 ;
        printf("var = %d\n", var) ;
    }

  3. #3
    Membre habitué
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Merci de m'avoir répondu

    j'ai essayé ce que vous m'avez dit et j'obtient toujours var=0 !!!
    voici ce que j'ai fait:
    test1.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int var=0;
    void pre_traitement() 
    {
        .....
        .....
        printf("Cercle 1 de centre (%d,%d) et de Rayon=%d \n",X,480-Y1,Ra);
        var=480-Y1;
    }
    test1.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    extern int var;
    void pre_traitement();
    test2.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include "test1.h"
    void robot_position()
    {
        printf("%d",var);
    }

  4. #4
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Bonsoir,

    Heu.... dans ton code, tu n'utilises pas var ! Peut-être normal.
    A la place de int var=0 essaye de déclarer int Ya=0.

    Et il faut aussi appeler ta fonction de pré-traitement aussi

    Code test1.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "test1.h"
     
    int Ya = 0 ;
     
    void pre_traitement() 
    {
        .....
        .....
        printf("Cercle 1 de centre (%d,%d) et de Rayon=%d \n",X,480-Y1,Ra);
        Ya=480-Y1;
    }
    Code test2.c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "test1.h"
     
    void robot_position()
    {
        pre_traitement() ;
        printf("%d",Ya);
    }

  5. #5
    Membre habitué
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    désolée j'ai pas changé le nom des variables mais maintenant c'est fait
    je dois donc faire appel à ma fonction d'abord, ok je vais essayé et merci encore

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2007, 16h43
  2. Problème d'accès à une variable
    Par khaled.mtibaa dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 11h39
  3. Accés à une dll externe
    Par syrio dans le forum C++
    Réponses: 5
    Dernier message: 07/04/2006, 23h23
  4. Réponses: 3
    Dernier message: 12/10/2005, 09h23
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

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