begin process at 2012 05 28 22:16:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

conditions dans les .h


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

conditions dans les .h

dimanche 16 janvier 2005 à 09:22:32 | conditions dans les .h

Nebula

Membre Club
Bonjour,

Je me demandais juste s'il était possible (et si oui, comment) de connaître le nom du fichier à partir duquel un .h se fait inclure, afin d'éviter ou non certaines déclarations dans le .h (des extern const, en l'occurence).

J'ai bien pensé à tester la "variable" __FILE__, mais cela ne semble pas convenir. Des idées ?
dimanche 16 janvier 2005 à 11:28:14 | Re : conditions dans les .h

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Si tu respecte une certaines uniformité dans les #declare pour savoir si un fichier .h est inclut, tu peux aisément savoir si tel ou tel fichier est inclut ou non :

Dans chaque .h :

#ifndef NOMFICHIER_H
#define NOMFICHIER_H

// le reste de ton fichier.h

// et à la fin :
#endif

Et ensuite, pour faire ton test :

#ifdef NOMFICHIER_H
// tu sais que le NOMFICHIER.h est inclut dans ce fichier !

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
dimanche 16 janvier 2005 à 11:53:18 | Re : conditions dans les .h

Nebula

Membre Club
Oui çà je le gère déjà pour éviter les inclusions multiples, mais ce que je voudrais c'est connaitre le fichier qui a fait le #include... En fait, j'aurais besoin du test dans le .h, prenons un exemple çà sera plus clair ;-)

fichier toto.c :
#include "toto.h"
int toto = 2;

fichier toto.h :
#ifndef __TOTO_H__
  #define __TOTO_H__
  extern const int toto;
#endif

Voilà... Ici je sais que çà ne sert à rien, mais toto est en fait initialisé par une fonction dans toto.c, et doit être constant dans tous les autres modules qui incluent toto.h (je sais pas si je suis très clair ?)
dimanche 16 janvier 2005 à 11:57:43 | Re : conditions dans les .h

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Ah ok, non ca je ne vois pas comment faire, désolé !

DarK Sidious

[Administrateur et responsable VB/API du site 
ProgOtoP]
dimanche 16 janvier 2005 à 14:54:57 | Re : conditions dans les .h

dletozeun

Je ne vois pas vraiment l'interet de tout ca ou alors je ne dois pas comprendre...
dimanche 16 janvier 2005 à 15:21:43 | Re : conditions dans les .h

LordBob

Membre Club
pour que toto soit constante dans tous les autres modules, il faut qu'elle soit constante aussi dans le fichier .c ou elle est declaré...
en fait quand tu mets une variable de type extern, il faut que le type soit le meme que la variable qu'elle designe...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
dimanche 16 janvier 2005 à 15:31:24 | Re : conditions dans les .h

vecchio56

Administrateur CodeS-SourceS
Nebula> Si dans toto.c tu crée un défine exprès pour ca:

#define C_EST_TOTO_C_QUI_INCLUT
#include "toto.h"
#undef C_EST_TOTO_C_QUI_INCLUT
int toto=2

dans toto.h tu pourra savoir que c'est toto.c qui a inclus ce fichier
dimanche 16 janvier 2005 à 17:48:35 | Re : conditions dans les .h

Nebula

Membre Club
LordBob > de même type, pas forcément avec le même accès... on peut très bien avoir une variable modifiable dans un module, que les autres ne peuvent que lire.

vecchio56 > oui c'est ce que je faisais au début, mais je me demandais si on pouvait éviter cette méthode... tant pis, je resterais avec cette solution.


Cette discussion est classée dans : conditions


Répondre à ce message

Sujets en rapport avec ce message

Probleme de conditions avec la lecture [ par lol733 ] Bonjour. J'ai un petit probleme avec la lecture de mon fichier. En faite je lit ce fichier caractere par caractere et suivant le caractere rencontrer


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales