Passer une variable de type inconnu en paramètre et passer son type [Forums - Langage C]
Passer une variable de type inconnu en paramètre et passer son type [Forums - Langage C]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes





Passer une variable de type inconnu en paramètre et passer son type
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1896
Hors Ligne
Bonjour

J'ai besoin de passer en paramètre à une fonction, soit un unsigned short (U16), soit un unsigned long (U32)
de ce que j'ai compris il n'est pas possible de déterminer dans la fonction le type de la variable, il est nécessaire de le passer également en paramètre.

du coup j'ai fait une fonction comme ceci
typedef enum _TailleUint
{
    
UInt_U16 0U,
    
UInt_U32 1U
TailleUint_t;

uint32_t u32toto =125 ;

void fct(void *var, TailleUint_t typeVar)
{
 if(
typeVar== UInt_U16)
    
//traiter var comme un U16
 
else
    
//traiter var comme un U32
}

fct(&u32toto,UInt_U32) ; //là il ne faut pas se planter de type !!

Je trouve ça à la fois moche et super risqué si jamais je me trompe sur le type...

Comment puis-je faire autrement ?

Merci

Posté le : 09/11 12:18
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Passer une variable de type inconnu en paramètre et passer son type
Pilier de la communauté
Inscrit:
27/09/2005 18:07
De Metz
Messages: 1335
Hors Ligne
salut Charly,

je n'ai pas bien compris comme tu détermines typevar.

Sinon, il ne serait pas plus simple de créer 2 fonctions distinctes selon le type du paramètre.

Dernière chose, tu programmes en C? parce qu'en C++, le problème serait aisément résolu.

Posté le : 09/11 14:19
Transférer la contribution vers d'autres applications Transférer


Re: Passer une variable de type inconnu en paramètre et passer son type
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1896
Hors Ligne
Salut

Le type var je le détermine à la main, j'appelle la fonction en faisant attention de bien spécifier le bon type. J'appelle pleins de fois la fonction dans un gros switch case.

Je souhaitais faire une seule fonction parce que je fais un gros paquet de traitements dedans
mais à la re-réflexion je peux faire "le paquet de traitement" dans une fonction à part et avoir plusieurs petites fonctions par type qui ne feraient que le formatage final ! je n'étais plus assez lucide pour le voir, merci !

et oui je suis en C, sur un kinetis. Je n'ai jamais essayé de faire du C++ sur nos petits engins.

Posté le : 09/11 14:47
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer


Re: Passer une variable de type inconnu en paramètre et passer son type
Accro
Inscrit:
06/07/2007 09:17
Messages: 674
Hors Ligne
Je pense que ta solution est bonne.
tu fais des petites fonctions d'interfaces qui formate ta donnée vers ce qui ton convient.
void CharToMyType_ThenCall_MyFunct()
void IntToMyType_ThenCall_MyFunct()
...

Jacques, Tu pense à la surcharge de fonction? en fait cela de fait que déplacer le problème.
Ok, tu utilise toujours le même nom de fonction, mais tu doit ré-écrire 25 fois le prototype, en changeant type et nom des paramètres.
Oui le code est plus facile à lire, mais c'est quasiment pareil ici ^^

Posté le : 10/11 14:06
Transférer la contribution vers d'autres applications Transférer


Re: Passer une variable de type inconnu en paramètre et passer son type
Pilier de la communauté
Inscrit:
27/09/2005 18:07
De Metz
Messages: 1335
Hors Ligne
oui, mais d'un point de vue utilisation, ça devient très simple: l'appel sera identique quel que soit le type du paramètre de la fonction.

Il doit même avoir moyen d'utiliser les templates et là il n'y aura plus qu'une seule fonction générique.

Posté le : 10/11 15:05
Transférer la contribution vers d'autres applications Transférer


Re: Passer une variable de type inconnu en paramètre et passer son type
Pilier de la communauté
Inscrit:
23/10/2005 11:40
De Aix les Bains (73)
Messages: 1896
Hors Ligne
ohoh on a subit des dommages collatéraux de la panne chez OVH... je n'ai pas reçu de mail pour vos messages.

Merci à vous cette affaire m'a fait progresser en C

Posté le : 17/11 20:10
Mieux vaut marcher dans la bonne direction que courir dans la mauvaise
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

Passer une variable de type inconnu en paramètre et passer son type [Forums - Langage C]