[C] : placer des fcts dans table + cmt determiner le type d'un variabl

: placer des fcts dans table + cmt determiner le type d'un variabl [C] - C - Programmation

Marsh Posté le 27-04-2006 à 18:29:55    

Salut à tous.
 
Voilà je dois tester énormément de cas et plutôt que de réaliser un switch/case qui dans le pire des cas prend un temps proportionnel au nombre de cas j'aimerais utiliser une table de hachage dont l'accès à un élément est en temps constant. Seulement suivant les cas, je dois simplement retourner un entier (ce qui est alors facile avec les tables de hachage) ou alors exécuter une fonction et d'autres opérations. Donc ma question est de savoir s'il est possible de stocker un appel à une fonction ou qqch qui irait me chercher la procédure dans une table de hachage.  
 
Le tout se fait en C.
 
Merci d'avance.
 
EDIT : voilà j'ai une autre question. En fait j'aimerais savoir s'il existe une fonction qui renvoie true si le type d'une variable est "int" est false pour tous les autres types ? Celà existe t il ?


Message édité par Flitz le 28-04-2006 à 18:25:27
Reply

Marsh Posté le 27-04-2006 à 18:29:55   

Reply

Marsh Posté le 27-04-2006 à 18:33:13    

oui, avec des pointeurs de fonctions.

Reply

Marsh Posté le 27-04-2006 à 18:34:23    

Taz a écrit :

oui, avec des pointeurs de fonctions.


 
okey merci de ta réponse, je vais chercher ça.  
 :jap:

Reply

Marsh Posté le 28-04-2006 à 00:03:48    

Code :
  1. typedef void (*FOO)(int);
  2. void bar(int);
  3. void baz(int);
  4. void qux(int i, int a)
  5. {
  6.         FOO f[] = { bar, baz };
  7.         f[i](a);
  8. }


Message édité par Taz le 28-04-2006 à 00:09:29
Reply

Marsh Posté le 28-04-2006 à 18:28:49    

salut,
 
j'ai ajouté une petite question (voir edit). Je viens de chercher sur google mais je tombe sur la façon de faire un compilateur (vérification des types) mais pas sur une fonction qui détermine s'il s'agit d'un certain type ou non.
 
Est-ce que celà existe ?
 
merci  
 :hello:

Reply

Marsh Posté le 28-04-2006 à 18:41:09    

A ma connaissance pas en C.

Reply

Marsh Posté le 28-04-2006 à 22:26:32    

y a pas. à toi de coder tout ça. généralement, on utilise un champ qui indique le type et les données sont dans une union. Y a des tas d'exemples avec code complet sur le forum.

Reply

Sujets relatifs:

Leave a Replay

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