Include multiples qui font planter la compilation (Gcc Linux)

Include multiples qui font planter la compilation (Gcc Linux) - C - Programmation

Marsh Posté le 07-01-2006 à 23:06:23    

Bonjour
 
Je suis en train de réaliser un projet pour la fac en c. C'est un jeu de voitures avec 3 modules: voiture, circuit, course. J'ai besoin d'inclure des fichiers .h dans certains fichiers sans me préoccuper s'ils ont déja étés inclus dans un fichier en amont.
 
Mon prof m'a dit que son GCC était barbare, il pouvait faire des include de tous les fichiers .h dans tous ses fichiers sans qu'il y ai de problemes de compilation.
 
Pourriez vous me dire s'il existe une option afin qu'il evite les erreurs de "redefinition de sctructure"

Reply

Marsh Posté le 07-01-2006 à 23:06:23   

Reply

Marsh Posté le 07-01-2006 à 23:16:53    

jijiz a écrit :

Bonjour
 
Je suis en train de réaliser un projet pour la fac en c. C'est un jeu de voitures avec 3 modules: voiture, circuit, course. J'ai besoin d'inclure des fichiers .h dans certains fichiers sans me préoccuper s'ils ont déja étés inclus dans un fichier en amont.
 
Mon prof m'a dit que son GCC était barbare, il pouvait faire des include de tous les fichiers .h dans tous ses fichiers sans qu'il y ai de problemes de compilation.
 
Pourriez vous me dire s'il existe une option afin qu'il evite les erreurs de "redefinition de sctructure"


Ben oui :  
 
A lire entièrement.  
 
http://mapage.noos.fr/emdel/codage.htm
 
Pose des questions si tu ne comprends pas...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 07-01-2006 à 23:18:47    

Dans ton fichier .h tu dois mettre des #ifndef #endif.
En gros, tu vérifies qu'une variable VAR n'a pas été définie (sinon le fichier à déjà été inclus) et tu la définies juste après.
Le nom de la variable correspond souvent au nom du fichier (c'est plus simple).
 

Code :
  1. #ifndef FICHIER_H_  /* si la variable n'est pas défini on continue */
  2. #define FICHIER_H_  /* on défini la variable */
  3. [...]
  4. #endif  /* on délimite la section */


---------------
640K ought to be enough for anybody.
Reply

Marsh Posté le 07-01-2006 à 23:47:24    

Merci à tous les deux

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed