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

  FORUM HardWare.fr
  Programmation
  C

  Créer sa directive .h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Créer sa directive .h

n°1446195
exhortae
Membre du Cartel des Médecins
Posté le 22-09-2006 à 11:59:15  profilanswer
 

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

mood
Publicité
Posté le 22-09-2006 à 11:59:15  profilanswer
 

n°1446200
Elmoricq
Modérateur
Posté le 22-09-2006 à 12:07:21  profilanswer
 

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>
#include <whatever_header_we_need.h>
 
void machin(int bidule)
{
/*blahblah*/
}


 
Fichier machin.h

/* on "protege" ce fichier contre les inclusions multiples, pour
   eviter les erreurs de compilation */
#ifndef H_MACHIN
#define H_MACHIN
 
/* definition de notre fonction machin, implementee dans machin.c */
void machin(int);
 
#endif


 
 
 
Et enfin, notre programme principal, chose.c :

#include "machin.h"
 
/*blahblah code fonctions trucschoses*/
machin(un_nombre_entier);


 
 
 
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 )


Message édité par Elmoricq le 22-09-2006 à 12:15:39
n°1446239
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-09-2006 à 13:00:11  profilanswer
 

exhortae a écrit :


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


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...


---------------
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/
n°1446469
exhortae
Membre du Cartel des Médecins
Posté le 22-09-2006 à 20:29:39  profilanswer
 

Merci pour les réponses. Donc voilà mon programme, il tourne les questions viendront à la suite :)
 
fichier d'implémentation clrscr.c
 

Code :
  1. #include "clrscr.h"
  2. #include <stdio.h>
  3. void clrscr (void)
  4. {
  5. int i;
  6. for ( i = 1; i <= 25; i++)
  7.  printf("\n" );
  8. }


 
 
 
fichier d'interface
 

Code :
  1. #ifndef H_CLRSCR
  2. #define H_CLRSCR
  3. void clrscr (void);
  4. #endif


 
 

Code :
  1. #include "clrscr.h"
  2. #include <curses.h>
  3. #include <stdio.h>
  4. int main (void)
  5. {
  6. printf("Bonjour" );
  7. getchar();
  8. clrscr();
  9. puts("Bonsoir" );
  10. return 0;
  11. }

Message cité 1 fois
Message édité par exhortae le 23-09-2006 à 11:07:53
n°1446470
exhortae
Membre du Cartel des Médecins
Posté le 22-09-2006 à 20:33:26  profilanswer
 

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

Message cité 1 fois
Message édité par exhortae le 22-09-2006 à 20:33:45
n°1446518
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-09-2006 à 23:55:49  profilanswer
 

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.
 


---------------
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/
n°1446520
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-09-2006 à 00:00:34  profilanswer
 

exhortae a écrit :

Voilà les questions que je me pose :
 
1) pkoi on met #include "clrscr.h" au lieu de #include<clrscr.h>


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 :


2) dans #ifndef H_CLRSCR le CLRSCR correspond à quoi, à la fonction clrscr ou au nom du fichier d'implémentation.


Au nom du fichier (c'est une convention communément admise).

Message cité 1 fois
Message édité par Emmanuel Delahaye le 23-09-2006 à 00:02:14

---------------
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/
n°1446550
exhortae
Membre du Cartel des Médecins
Posté le 23-09-2006 à 11:07:25  profilanswer
 

Emmanuel Delahaye a écrit :

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 :


2) dans #ifndef H_CLRSCR le CLRSCR correspond à quoi, à la fonction clrscr ou au nom du fichier d'implémentation.


Au nom du fichier (c'est une convention communément admise).


 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Créer sa directive .h

 

Sujets relatifs
créer site webCréer un "planet" ?
Creer une animation flashCréer des script Perl
[MING] Problème de rotation d'un objet ( + police TTF > FDB)Créer FTP avec 1&1 avec Index.txt
[Word - VBA] Créer un userform sous VBA wordCréer un fichier word
Comment creer 2 axes de courbes en vb pour 2 seriesDans un graph comment creer 2 axes de courbes en vb pour 2 series
Plus de sujets relatifs à : Créer sa directive .h


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR