Créer sa directive .h - C - Programmation
Marsh Posté le 22-09-2006 à 12:07:21
Ouh la, tu mélanges beaucoup de choses.
Un fichier en-tête ne contient que des définitions ; aucun code.
Et c'est un bête fichier.
En gros, tu écris l'implémentation de tes fonctions que tu veux séparer dans un fichier .c à part, puis tu écris les prototypes de ces fonctions dans un fichier en-tête .h
Dans le reste du programme où tu as besoin de ces fonctions, tu inclus le fichier .h créé, sans te soucier du reste.
Et il te suffit d'adapter la compilation, en séparant la compilation des modules pour les ajouter lors de l'étape finale à la compilation du programme principal.
Exemple : création d'une fonction machin() implémentée dans un fichier séparé
Fichier machin.c
#include <stdio.h> |
Fichier machin.h
/* on "protege" ce fichier contre les inclusions multiples, pour |
Et enfin, notre programme principal, chose.c :
#include "machin.h" |
Dernière étape, compiler machin.c sans l'option linkage pour générer un fichier machin.o, et inclure le fichier machin.o à la compilation de chose.c
Zieute la documentation de ton compilateur favori pour voir comment faire
(avec gcc c'est l'option -c pour juste créer le .o, et tu mets juste la liste de tes fichiers .o pour le linkage, genre :
gcc -c machin.c -o machin.o
gcc chose.c machin.o )
Marsh Posté le 22-09-2006 à 13:00:11
exhortae a écrit : |
http://mapage.noos.fr/emdel/codage.htm
Pose des questions si tu ne comprends pas. Ensuite, poste ton code, qu'on vérifie si tu as bien compris...
Marsh Posté le 22-09-2006 à 20:29:39
Merci pour les réponses. Donc voilà mon programme, il tourne les questions viendront à la suite
fichier d'implémentation clrscr.c
Code :
|
fichier d'interface
Code :
|
Code :
|
Marsh Posté le 22-09-2006 à 20:33:26
Voilà les questions que je me pose :
1) pkoi on met #include "clrscr.h" au lieu de #include<clrscr.h>
2) dans #ifndef H_CLRSCR le CLRSCR correspond à quoi, à la fonction clrscr ou au nom du fichier d'implémentation.
C'est tout pour l'instant, j'en aurais une autre, mais jvais chercher google voir si je peux la résoudre moi même
encore merci de prendre le temps de m'aider
Marsh Posté le 22-09-2006 à 23:55:49
exhortae a écrit : Merci pour les réponses. Donc voilà mon programme, il tourne |
Presque bon. Il manque un <stdio.h> dans le main.c.
Marsh Posté le 23-09-2006 à 00:00:34
exhortae a écrit : Voilà les questions que je me pose : |
Parce que les <> sont réservés pour les headers standards.
Par convention, les <> conviennent aussi aux extensions des compilateurs (<conio.h>, <ncurses.h> etc.) et parfois aux headers des bibliothèques tierces (<sdl/sdl.h> etc.). Les "" sont plutôt attribués aux headers de l'application.
Citation : |
Au nom du fichier (c'est une convention communément admise).
Marsh Posté le 23-09-2006 à 11:07:25
Emmanuel Delahaye a écrit : Parce que les <> sont réservés pour les headers standards.
|
Merci
Marsh Posté le 22-09-2006 à 11:59:15
Bonjour,
voilà j'aimerais créer ma propre fonction, il me faut donc un fichier .h pour pouvoir utiliser ma fonction
le soucis est que je n'y connais pas grand chose
j'imagine qu'il va me falloir un header pour pouvoir faire un #include<exhortae.h>, puis appeler ma fonction
j'ai cherché sur le net mais je trouve pas de doc
quelqu'un aurait t'il un lien qui expliquerait le processus pour aller d'une fonction crée par soit à l'utilisation dans un programme de cette fontion avec utilisationde la directive de compilation
Merci