[C] Type d'1 variable comme paramètre à 1 fonction

Type d'1 variable comme paramètre à 1 fonction [C] - Programmation

Marsh Posté le 05-11-2001 à 00:15:24    

Comment préciser le type d'1 objet à une fonction générique du genre :
 
int Fonction (
 
        void * pObj,  
        [#00ff00]/*Comment préciser le type d'objet*/[#00ff00]
 int (* Comparer) (void *,void *),
 int tailleObj      
 )
 
Merci

Reply

Marsh Posté le 05-11-2001 à 00:15:24   

Reply

Marsh Posté le 05-11-2001 à 08:35:33    

bah tu mets un autre paramètre qui sera par exemple un enum que t'auras défini...

Reply

Marsh Posté le 05-11-2001 à 11:36:16    

Un template ca peut pas aller ?

 

[edtdd]--Message édité par beber.doneux01--[/edtdd]

Reply

Marsh Posté le 05-11-2001 à 21:54:46    

El_Gringo, peux tu étayer un peu + siouplait
 
beber.doneux01, Un template ca peut pas aller ?  
 
Non car le code est du C et non du C++

Reply

Marsh Posté le 05-11-2001 à 21:59:43    

Tu rajoutes un 3ième paramètre pour le type (un enum par exemple :D)
Et a après un tu mets un switch et des casts.
C'est crade, mais le C c'est ça :)

Reply

Marsh Posté le 05-11-2001 à 22:07:09    

Oui ce qui me gène à mettre 1 switch et des casts est que tu dois reprendre ta fonction à chaque nouveau type d'objet.

Reply

Marsh Posté le 06-11-2001 à 10:31:25    

Si tu veux que ta fonction puisse traiter différents types d'objets, cherches du côté des templates !

Reply

Marsh Posté le 06-11-2001 à 10:32:07    

Verdoux a écrit a écrit :

Tu rajoutes un 3ième paramètre pour le type (un enum par exemple :D)
Et a après un tu mets un switch et des casts.
C'est crade, mais le C c'est ça :)  




 
--> squatteur d'idées ! :na:

Reply

Marsh Posté le 06-11-2001 à 11:20:53    

precise un peu ta fonction Comparer et ce ke tu souhaites


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 06-11-2001 à 23:34:13    

Je vais essayer de préciser en peu + :
 
Voila, j'ai :
 
 - 1 liste(multiple) de cellules contenant des pointeurs vers objets, void * ptrObj.  
 - pour effectuer des recherche par dichotomie sur les objets pointés par la liste, existe 1 tableau de pointeurs void * qui pointent NON pas vers les objets directement MAIS vers les cellules.
 
Je désire que mon tableau de recherche par dicho. soit réutilisable pour tous types d'objets et pour tous types de structures(cellules) pointant vers des objets mais pour ce faire j'ai besoin de fonctions les + génériques possibles.
D'ou ma question pour savoir comment préciser par arguments à 1 fonction 1 type d'objet.      
 
/* Structure contenant le tab. de recherche */
 
typedef struct {
 
 void * tabRechDicho[LGMAX];
 int fin;
 
 }LISTE_RECH;
 
/* Fonction de recherche */
 
BOOLEEN RechDicho (
 
       LISTE_RECH * lr,  
       void * ptrObj,     \* Obj à rechercher *\
       ???                \* Précise le type d'objet->Casts*\
       int(compar *) (void *, void* ) \*Fonction comparaison*\
       ....
       )
 
{\* Mon pb dans le corps de la fonction est de caster les objets  
  à comparer *\
}
 
Est ce + clair ?

Reply

Marsh Posté le 06-11-2001 à 23:34:13   

Reply

Marsh Posté le 14-11-2001 à 18:07:58    

je voulais ke tu precises les differents types ke tu veux veux caster (y'en a combien ?), et comment fonctionne ta comparaison
peux-tu juste passer en parametre la taille de ton type ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

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