Déclaration de variables en C
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Déclaration de variables en C



  1. #1
    flyingrock

    Déclaration de variables en C


    ------

    Bonjour,

    Je viens de faire un programme sous MikroC qui fonctionne très bien.
    J'ai voulu le rendre un peu plus clair en créant un fichier .h ou j'ai déclaré toutes mes fonctions, puis un fichier .c ou je les ai définies et bien sur conservé le programme principal.
    Là ou ça coince c'est pour les fonctions qui utilisent des variables déclarées dans le programme principal sous la forme
    Code:
    int x1,x2,x3;
    le compilateur me dit que les variables ne sont pas définies.
    Par contre pour les fonctions qui ont leurs variables de déclarées dans leurs corps je n'ai aucun problème
    Code:
    static z1,z2,z3;
    .
    Si je déclare à nouveau les variables dans chaque fonction je résous le problème, mais cette solution ne me parait pas très logique puisqu'elles ont déjà été déclarées.

    Une idée ?

    -----

  2. #2
    invite3c35244f

    Re : Déclaration de variables en C

    Bonjour,

    je ne sais pas si ça peut t'aider, mais il y a pas mal de temps j'avais posé une question similaire:

    http://forums.futura-sciences.com/el...ariable-c.html

    Bonne continuation.

  3. #3
    flyingrock

    Re : Déclaration de variables en C

    Bonjour,

    Merci pour le lien, en effet sujet très similaire

    Dans l'exemple que donne Seb.26 les variables sont déclarées au début du fichier dans rs232.c et pas dans le fichier main.c car celles-ci ne sont
    pas utilisées dedans.

    Mais dans mon cas les variables servent aussi dans le main.

    A suivre ....

  4. #4
    invite3c35244f

    Re : Déclaration de variables en C

    Dans ton cas, si tu les déclares en dehors de ton main, tu les déclares donc en tant que variables globales, donc utilisables dans toutes les fonctions...

  5. A voir en vidéo sur Futura
  6. #5
    invite5bc96a17

    Re : Déclaration de variables en C

    Salut,

    Si ce sont des variables globales que tu as déclarés en dehors de ta fonction main, tu dois les redéclarer dans toute les fonctions qui vont les utiliser en spécifiant "extern".

    Par exemple, tu as déclaré "int x1, x2, x3;" en variables globales. Si tu les utilises dans ta fonction main, tu les redéclares comme ceci, "extern int x1, x2, x3;".

    Cordialement.

    Si tu veux leur donner une valeur initiale fait le dans la déclaration de la variable globale et non dans la redéclaration.

  7. #6
    flyingrock

    Re : Déclaration de variables en C

    Bonjour,

    Non mes variables globales sont déclarées dans la fonction main, et les fonctions qui en ont besoin sont dans un fichier .c

    Donc en laissant comme tel et en ajoutant au début .c ou je définis les fonctions extern int x1,x2,x3 plus d'erreur
    de compilation et le programme est toujours fonctionnel.

    Hormis le fait que cela fonctionne est ce que c’était la bonne manip a faire ?

  8. #7
    invite5bc96a17

    Re : Déclaration de variables en C

    Donc si je comprend bien, tu a déclaré tes variables dans ta fonction main() et tu peux les utiliser dans d'autre fichier en utilisant extern devant?

  9. #8
    flyingrock

    Re : Déclaration de variables en C

    En fait au début je pensais que les déclarer dans la fonction main aurait suffit.

    Actuellement elles sont déclarées et utilisées dans la fonction main, puis déclarées avec extern dans le fichier "fct1.h" (dans mon cas)
    ou le code des fonctions les utilise aussi.

  10. #9
    invite5bc96a17

    Re : Déclaration de variables en C

    J'ai toujours déclaré mes variables globales avant la fonction main et redéclaré dans chaque fonction mais si ça fonctionne comme ça tant mieu. J'en apprend aussi ^^

    Vérifie quand même si tu as des warnings par rapport à ces variables lorsque tu compiles. Sinon tu peux vérifier leur état dans chaque partie du programme et si tout est bon c'est que tout fonctionne.

    A+

  11. #10
    invite71a6c60d

    Re : Déclaration de variables en C

    Salut a tous!

    La norme en C c'est d'utiliser des header file .h pour partager les variables.

    example:

    mouvement.c

    Code:
    #include "mouvement.h"
    
    int result, state;     // creation de 2 variables

    mouvement.h

    Code:
    extern int result, state;

    routine.c
    Code:
    #include "routine"
    result = 4;
    routine.h
    Code:
    #include "mouvement.h"

  12. #11
    flyingrock

    Re : Déclaration de variables en C

    OK pour tes explications je vais voir à l'usage c'est la première fois que je "découpe" un programme.

    Pour répondre à ta question je n'ai aucun warning.

Discussions similaires

  1. [PIC] - déclaration de variables lors de l'utilisation des interruptions
    Par invite3c35244f dans le forum Électronique
    Réponses: 7
    Dernier message: 11/12/2012, 08h47
  2. Déclaration de variables en assembleur
    Par Laboum dans le forum Électronique
    Réponses: 3
    Dernier message: 25/10/2010, 08h55
  3. [C]-Déclaration de variables
    Par invite3c35244f dans le forum Électronique
    Réponses: 3
    Dernier message: 29/04/2009, 13h57
  4. Influence des variables d'une fonction à 2 variables
    Par invitee2a62e92 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 18/07/2008, 02h54
  5. [PIC]-Aide déclaration variables
    Par invite3c35244f dans le forum Électronique
    Réponses: 17
    Dernier message: 03/06/2008, 10h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...