une fonction C selon type de paramètre

FireBird

Grand Maître
salut;

j'aimerai créer une petite librairie pour manipuler les bits des entiers 8, 16 et 32 bits.

j'aimerais pas créer des fonctions pour chaque type. J'ai essayé de déclarer la même fonction en changeant le type de paramètres et ça marche pas (changer la signature en jargon).

y a t il un moyen en C pour prendre en compte le type de paramètres et faire le calcul adéquat ?

Merci

p.s. j'utilise GCC
 

batchy

Grand Maître
Eeeeeeeeeeeet non.

Le truc idéal pour toi ça serait les templates du C++. mais c'est du C++, pas du C :)

En C tu est obligé de recréer tout tes types de manière modulaire, genre comme des structures qui contiennent un nombre de bit et un tableau de char.


ou sinon si tu te sent l'âme d'un bourrin, alors il est possible de faire ce que tu veux en bourrinant avec le préprocesseur.
 

FireBird

Grand Maître


j'ai meilleur temps à écrire toutes les fonctions.

Y a un moyen qui retourne le type d'un paramètre dans une fonction ?

 

zeb

Modérateur
Non. :(

Proposition de prototype :
[fixed]unsigned long fonction_sur_les_bits(int nombre_bits, unsigned long operande1, unsigned long operande2)[/fixed]
Ensuite, tu peux faire des macros :

[fixed]#define fonction_sur_16_bits(n1, n2) fonction_sur_les_bits(16, n1, n2)
#define fonction_sur_32_bits(n1, n2) fonction_sur_les_bits(32, n1, n2)[/fixed]
 

FireBird

Grand Maître

Bonne idée, vais essayer ça.
 

boub popsyteam

Grand Maître
Et un truc du genre

Code:
void* fonction_sur_les_bits(int nb_bits, void *op1, void *op2)

Ca obligerait à faire les reservations de ram à la main avec des malloc etc mais au moins ça serait vraiment universel ... du moins AMHA.

(bon apres je peux me tromper, ça fait longtemps que je n'ai pas pratiqué ce genre de bricolage :))
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 064
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut