"méthode" de file homemade

"méthode" de file homemade - C - Programmation

Marsh Posté le 12-05-2006 à 01:28:22    

j'ai une file circulaire à faire en C (et non C++)
 
en gros, comment je dois définir mes fonctions du genre Enfiler/Defiler par rapport à ma struct sachant que j'ai un fichier cbuffer.c et cbuffer.h dans lesquels je dois faire la définition de ma file circulaire?


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 12-05-2006 à 01:28:22   

Reply

Marsh Posté le 12-05-2006 à 07:59:33    

Tu mets la déclaration des structures visibles (il n'y en a peut-être pas) et les prototypes de fonctions interfaces dans le .h et tu définis les fonctions dans le .c, celles qui n'ont pas à être visibles de l'extérieur seront déclarées en static dans le .c

Reply

Marsh Posté le 12-05-2006 à 12:11:50    

ok mais en gros je voulais plus savoir:
 
ma méthode défiler doit recevoir un pointeur de file et retourne un élément de ma file?
ma méthode enfiler recoit un pointeur de file et un élément à empiler?
 
en gros ca j'ai toujours géré mes files par des librairies déjà fait en C++ que j'appelais une méthode de l'objet, là faut vraiment que jreste en C vu que c'est pour un driver de kernel linux


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 12-05-2006 à 16:12:20    

burgergold a écrit :

ok mais en gros je voulais plus savoir:
 
ma méthode défiler doit recevoir un pointeur de file et retourne un élément de ma file?
ma méthode enfiler recoit un pointeur de file et un élément à empiler?
 
en gros ca j'ai toujours géré mes files par des librairies déjà fait en C++ que j'appelais une méthode de l'objet, là faut vraiment que jreste en C vu que c'est pour un driver de kernel linux


 
Tu peux faire comme celà dans le .h décrivant l'interface

Code :
  1. // structure d'un noeud, void *data permet de stocker n'importe quoi
  2. typedef struct Node
  3. {
  4.     void *data;
  5.     struct Node * suivant;
  6. } Node;
  7. // structure de la file elle-même
  8. {
  9.      Node *deb;
  10. Node *fin;
  11. } MyFile
  12. // les accesseurs
  13. // Création d'une nouvelle file
  14. MyFile *create_file(void); qui te retourne une nouvelle file
  15. // Stockage d'un data dans la file
  16. // retourne SUCCESS ou ERREUR (ou plusieurs erreurs si tu veux affiner)
  17. int enfile_file(MyFile *file, void *data);
  18. // Recuperation d'un élément de la file
  19. // retourne un pointeur ves le data ou NULL si la file est vide
  20. void *defile_File(MyFile *file);


Message édité par Trap D le 12-05-2006 à 16:13:11
Reply

Sujets relatifs:

Leave a Replay

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