MPLAB fichier d'entête
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

MPLAB fichier d'entête



  1. #1
    invite2f9e2fac

    Arrow MPLAB fichier d'entête


    ------

    Bonjour,

    Je suis en train de monter un projet électronique et je commence à avoir beaucoup de pages en .c pour ma programmation .

    Pour me faciliter la déclaration des constantes et variables j'aurais voulu créer un fichier var.h qui j'appellerais en entête de chacun de mes fichiers .c afin d'avoir mes variables disponibles dans chaque fichier.

    Mon problème est que si j'inclus var.h dans chaque fichier .c il me dit que je déclare plusieurs fois les même variables.
    Par contre si j'enlève et que j'inclus que dans mon fichier principal (main.c) il me dit quand il compile les autres fichiers que je n'ai pas déclaré les variables

    Comment faire pour avoir un seul fichier var.h et que chaque fichiers .c l'utilise ?

    Merci d'avance

    Jérôme

    -----

  2. #2
    sdec25

    Re : MPLAB fichier d'entête

    Salut.
    Quand tu déclares une variable, le compilateur la déclare pour chaque fichier objet et c'est ensuite à l'édition de lien qu'il trouve plusieurs variables qui ont le même nom.

    Pour que la variable ne soit pas redéclarée il faut la déclarer une seule fois dans un .c, et en extern dans les autres fichiers .c

  3. #3
    invite2562e666

    Re : MPLAB fichier d'entête

    ............

  4. #4
    invite2562e666

    Re : MPLAB fichier d'entête

    Salut,

    C'est un problème classique:

    En début de ton var.h ; tu mets :


    /* Define to prevent recursive inclusion -------------------------------------*/
    #ifndef VAR_H
    #define VAR_H

    ... (ton var.h)

    et à la fin de ton var.h :

    #endif /* VAR_H */

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

    Re : MPLAB fichier d'entête

    Après plusieurs test j'ai toujours le même résultat au moment de l'edition de lien il me met toujours que les variables son déclarées plusieurs fois.
    J'ai pourtant adopté la methode de thm et mis mes variables en extern mais rien n'y fait.
    Avez vous une autre piste ?

  7. #6
    invite5637435c

    Re : MPLAB fichier d'entête

    Bonsoir,

    sans voir ton programme où le type de compilateur C, on ne peut que supposer que...
    La méthode de thm est la bonne, sur certains compilateurs non ANSI il est possible que la syntaxe soit différente.

    Tu peux aussi décomposer ton programme par type de fonctions c'est souvent plus lisible sur des programmes longs:

    Par exemple,

    main.c contenant le déroulement principal de l'application

    mesure.c contenant des fonctions de mesures
    mesure.h contenant les fonctions que l'on souhaite partager avec d'autres fichiers C, par exemple appelées dans main.c dans ton cas.

    affichage.c contient des fonctions liées à la gestion d'affichage
    affichage.h

    .....

    dans les différents fihiers h tu déclares en extern les fonctions ainsi que les variables du fichier C associé.

    Il suffit ensuite de déclarer dans main.c:

    #include "affichage.h"
    #include "mesure.h"
    ......
    si tu fais appel à des fonctions crées dans ces fichiers C.

    Le linker saura faire le reste puisqu'il saura désormais où trouver son bonheur.

    @+

  8. #7
    ElMamat

    Re : MPLAB fichier d'entête

    Salut,
    est ce qu un #pragma once ne ferait pas l affaire (a voir si il est supporte par le compilateur).

Discussions similaires

  1. Matlab Lecture de n fichier .txt et ecriture dans un fichier .xls
    Par invite24513ab6 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 26/07/2010, 10h12
  2. Lire un fichier .BIN avec Matlab converti d'un fichier .WAV
    Par invite45d1502e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 03/05/2008, 17h13
  3. comment cree un fichier (.Hex) dans MPLAB?
    Par invite779ffd8e dans le forum Électronique
    Réponses: 2
    Dernier message: 19/03/2008, 08h14
  4. Réponses: 7
    Dernier message: 12/06/2007, 16h27
  5. probleme d'ouverture d'in fichier ISO et d'un fichier RAR
    Par invitec35bc9ea dans le forum Logiciel - Software - Open Source
    Réponses: 12
    Dernier message: 28/08/2006, 19h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...