comment creer un .h

comment creer un .h - C - Programmation

Marsh Posté le 07-12-2003 à 18:39:07    

voila je debute en c, et j'aimerai bien creer un .h pour y mettre des fonctions que j'ai faite...
J'ai examiner des fichiers genre math.h mais je pige pas trop le principe...
si quelqu'un peut m'expliquer ca, ca serao tres sympa :) ou meme un tutorial ferait largement l'affaire.
merci
 
ps: je fais du C sous visual studio 6


Message édité par herks le 07-12-2003 à 18:40:39
Reply

Marsh Posté le 07-12-2003 à 18:39:07   

Reply

Marsh Posté le 07-12-2003 à 18:42:00    

Code :
  1. #ifndef MOTIF_TRES_COMPLIQUE
  2. #define MOTIF_TRES_COMPLIQUE
  3. int fonction();
  4. /* etc */
  5. #endif /*MOTIF_TRES_COMPLIQUE*/


 
et voilà
MOTIF_TRES_COMPLIQUE, c'est une combinaison sans espace du nom du fichier, de la date, du nom du projet, bref tout ce que tu veux, pour vu que MOTIF_TRES_COMPLIQUE soit assez unique

Reply

Marsh Posté le 07-12-2003 à 18:46:55    

Je rajoute que dans un .h en C tu ne mets pas le corps des fonctions.
Tu les définies juste.


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 07-12-2003 à 18:48:58    

fFluFf a écrit :

Tu les définies juste.

évidemment si tu mélanges tout...
 
définir -> le corps
déclarer -> le prototype
 
:o

Reply

Marsh Posté le 07-12-2003 à 18:55:29    

merci pour ses reponses car je melangais un peut tout...
donc si on declare seulement le prototype de la fonction dans le .h ou met on le corp de celle ci ?
merci

Reply

Marsh Posté le 07-12-2003 à 18:58:18    

Taz a écrit :


déclarer -> le prototype

[:quoted]

Reply

Marsh Posté le 07-12-2003 à 19:55:06    

le fichier.h est le fichier de déclaration des fonctions définis dans le fichier.c :)


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill
Reply

Marsh Posté le 07-12-2003 à 23:29:26    

Normallement tu mets la declaration des structures, variables globales, procedures, fonctions, etc ... dans le .h.
Ensuite dans le le .c tu ecris le corps de des tes fonction.
Tout ceci te permettra ensuite de reutiliser ton .h dans un autre programme à l'aide d'include de .h dans le code source et de .objet lors de la compilation.

Reply

Marsh Posté le 24-10-2008 à 17:57:33    

Existe-t-il un programme, sous linux si possible, pour créer un fichier .h à partir d'un .c, si possible en gardant les commentaires de l'entête de la fonction ?
 
Merci :)

Reply

Marsh Posté le 24-10-2008 à 18:10:32    

vim et ton clipboard


---------------
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn ! [:thalis]
Reply

Marsh Posté le 24-10-2008 à 18:10:32   

Reply

Marsh Posté le 24-10-2008 à 22:27:50    

tholdan a écrit :

vim et ton clipboard


Tu peux préciser la méthode ?  
Si c'est simplement supprimer à la main la définition des fonctions ça ne m'avance pas...

Reply

Marsh Posté le 25-10-2008 à 15:18:53    

Mais "lol" ! Tu veux créer un .h pour quoi faire? Cherche des tutoriaux sur des sites faits pour ça:  
Va sur www.developpez.com -> C/C++
Pour moi, c'est les meilleurs cours de prog. en français que tu peux trouver. Bon courage....
 

Reply

Marsh Posté le 26-10-2008 à 08:35:39    

Mais "lol", ça c'est de la réponse ...
 
C'est pour pouvoir lire les entêtes de fonctions sans naviguer dans un fichier de 1000 lignes...  
Et je demande simplement si quelqu'un connaît un programme pour faire ça, pour ne pas avoir à fouiller dans 10 tutoriels qui ne contiendront sans doute pas la réponse ...
 

Reply

Marsh Posté le 26-10-2008 à 09:08:41    

cybertom87 a écrit :


C'est pour pouvoir lire les entêtes de fonctions sans naviguer dans un fichier de 1000 lignes...


ctags, outils intégrés dans visual studio/eclipse/vim/emacs....

Reply

Marsh Posté le 26-10-2008 à 10:31:51    

Ou encore mieux, doxygen et tu génère automatiquement une belle doc HTML de tes interfaces.
 
Pour répondre à ta question, je ne connais pas d'outil qui puisse générer un .h à partir d'un .c, bien qu'en effet ça ne soit pas une idée ridicule. On pourrait imaginer un truc qui mette dans un .h toutes les fonctions non statiques, toutes les variables non statiques, et les types associés.

Reply

Marsh Posté le 26-10-2008 à 12:12:46    

ouais ca se fait aussi à la main en peu de temps. De tête en faisez ça en TP de C en 1ere année d'école d'ingé.

Reply

Marsh Posté le 26-10-2008 à 12:40:20    

Tu parsais le C en première année d'école d'ingé ? T'es balaise toi dis moi.

Reply

Marsh Posté le 26-10-2008 à 15:31:20    

trouver le début d'une fonction et son prototype, c'est pas sorcier.
En 1ere année, on avait des cours de langages/automates et oui, on savait faire ce genre de chose :o

Reply

Marsh Posté le 30-10-2008 à 18:41:53    

cybertom87 a écrit :

pour ne pas avoir à fouiller dans 10 tutoriels qui ne contiendront sans doute pas la réponse ...


Non, juste un seul qui lui contient la réponse: http://fr.lang.free.fr/cours/Gener [...] t_v1.0.pdf (page 11)

Message cité 1 fois
Message édité par Sve@r le 30-10-2008 à 18:42:52

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 05-11-2008 à 23:00:31    

sligor a écrit :


ctags, outils intégrés dans visual studio/eclipse/vim/emacs....


Comme on utilise pas mal vim, ça m'intéresse de connaitre le procédure ... :)
 

matafan a écrit :

Ou encore mieux, doxygen et tu génère automatiquement une belle doc HTML de tes interfaces.
 
Pour répondre à ta question, je ne connais pas d'outil qui puisse générer un .h à partir d'un .c, bien qu'en effet ça ne soit pas une idée ridicule. On pourrait imaginer un truc qui mette dans un .h toutes les fonctions non statiques, toutes les variables non statiques, et les types associés.


J'utilise doxygen aussi, c'est vrai que c'est pas mal, mais j'ai quand même besoin du .h pour faire quelquechose de propre.
 

Joel F a écrit :

ouais ca se fait aussi à la main en peu de temps. De tête en faisez ça en TP de C en 1ere année d'école d'ingé.


Ouais ça doit se faire ... mais y'a du temps à passer dessus avant que ça marche ... et justement du temps en 1ère année d'école d'ingé, on en manque :D
 

Sve@r a écrit :


Non, juste un seul qui lui contient la réponse: http://fr.lang.free.fr/cours/Gener [...] t_v1.0.pdf (page 11)


Après avoir perdu mon temps à lire ce document, je n'ai pas trouvé une trace de réponse de la question que je me posais ...

Reply

Marsh Posté le 08-11-2008 à 19:18:28    

cybertom87 a écrit :


Après avoir perdu mon temps à lire ce document...


ok, va te faire foutre.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 09-11-2008 à 18:39:51    

cybertom87 a écrit :


Après avoir perdu mon temps à lire ce document, je n'ai pas trouvé une trace de réponse de la question que je me posais ...


 

Sve@r a écrit :


ok, va te faire foutre.


 
Autant la réponse de sve@r n'était pas exactement dans le sujet, autant ta réponse est légèrement agressive. Cela prenait 30 sec à vérifier que son lien ne convenait pas, je n'appelle pas ça perdre du temps (ou alors faut arrêter la programmation, parce qu'en C, on passe son temps à chercher).
 
Sinon avec google et 3 mots clés - header file generator  - , on tombe sur ce lien : http://www.hwaci.com/sw/mkhdr/makeheaders.c
 
Je ne l'ai pas testé, mais tu devrais au moins l'essayer, voire t'en inspirer pour écrire ton propre parser, c'est toujours un apprentissage utile (à la main ou en flex/bison). Mais attention quand même, tu risques de perdre du temps si ça ne marche pas  :o  

Reply

Marsh Posté le 09-11-2008 à 21:22:53    

Je me permettais d'avoir ce ton car sve@r m'a donné son lien en me quotant lorsque je précisais "pour ne pas avoir à fouiller dans 10 tutoriels qui ne contiendront sans doute pas la réponse ...".
Après avoir vu ça, il me donne un document qui ne contient pas la réponse, j'ai juste l'impression qu'on se fout de ma gueule...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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