Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4293 connectés 

 


Dernière réponse
Sujet : [ VC++ ] VStudio tient pas compte de mes #ifndef _MACLASSE_H etc.
farib poste tes codes !
 
ce forum reconnait une belle  balise [cpp][/cpp]

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
farib poste tes codes !
 
ce forum reconnait une belle  balise [cpp][/cpp]
SoWhatIn22

WhitePoney a écrit a écrit :

 
 
Même en mettant des #ifndef _TDEJAVENULAIMBECILE_ #define _TDEJAVENULAIMBECILE_ ...  bein ça change pas pourtant ça devrait non ?!
 




 
Pas forcément.
Lorsque tu compiles ton projet, chaque fichier C (ou C++) est compilé séparément. Donc si chaque fichier .c fait un include de ce fichier .h, alors il n'y a pas de raison qu'il y est une erreur de compil.
Par contre, lors du link, le linker va crier car le symbol est défini dans chaque fichier objet .obj
 
Si c'est un #define, cela ne devrait pas poser de problème car tout est fait lors de la précompilation, et la variable est remplacée par se 'vraie' valeure. Le problème ne doit se poser que si tu définies une variable.
genre
 
#ifndef XXX
#define XXX
const int MYINT=7;
#endif
 
alors si le header qui contient ces lignes est inclu par plusieurs fichiers source, ca ne va pas passer au link, même si ca peut passer à la compil.
 
Donc c'est louche ton truc, par ce que un #define devrait passer.

WhitePoney

youdontcare a écrit a écrit :

détaillleuh !




 
 
? c'est pas clair ???
 
Mettons que j'ai par exemple un #define MAX_TRUC 50 dans utils.h et que j'ai plusieurs autres fichiers qui veulent utiliser ce MAX_TRUC bein je mets des #include "utils.h" dedans ; mais lors de la compilation il me met des trucs du style "@MAX_TRUC already defined in main.obj" ou alors MAX_TRUC redefinition enfin c space quoi.
 
Même en mettant des #ifndef _TDEJAVENULAIMBECILE_ #define _TDEJAVENULAIMBECILE_ ...  bein ça change pas pourtant ça devrait non ?!
 
 
 

farib poste ;-)
youdontcare détaillleuh !
WhitePoney eeupeuuuu !
WhitePoney

chrisbk a écrit a écrit :

ca sent la classe A qui inclue la classe B tandis que la classe B inclue la classe A, je me trompe ? :D




 
oui :D
 
 
edit : (ça le fait pas que pour les classes, mais dès que j'inclue un même .h : il me met (logique) qu'il y a des redéfinitions etc.)

chrisbk ca sent la classe A qui inclue la classe B tandis que la classe B inclue la classe A, je me trompe ? :D
WhitePoney Dans mes classes j'ai des :
 
#ifndef _maclasse_h
#define _maclasse_h
 
.
.
.
 
 
#endif
 
et dans d'autres fichiers j'ai des #include "maclasse.h"
 
 
Mais apparament lors de la compilation visual studio repasse quand même dans la classe :/
 
Quelle option permet de remédier à ce problème ?
 

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)