valoche72
Messages postés1Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention22 août 2007
-
22 août 2007 à 15:08
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 2012
-
26 août 2007 à 15:34
Bonjour,
Comment tester le type d'une variable en C ?
D'avance, merci pour vos nombreuses reponses
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 22 août 2007 à 15:48
Le type exacte ? Je ne connais aucun moyen.
Le seul que je connaisse c'est par le poids de la variable (sizeof). Cependant, plusieurs types peuvent avoir le même poids.
Ceci dit, je ne vois aucune utilité à savoir le type de variable que l'on utilise dans un code puisque justement, tu devrais le savoir.
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 22 août 2007 à 20:36
Bien que possible en C++ ça reste une énorme connerie, c'est résolu à la compilation, alors à quoi cela peut-il bien servir puisque le développeur est tout de même censé savoir ce qu'il code.
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 20112 22 août 2007 à 23:53
Ca me fait penser à la fonction SendMessage :
Il arrive qu'un pointeur sur un certain type de variable soit passé en LPARAM, mais la fonction utilise la valeur du HPARAM pour savoir comment elle doit caster le pointeur.
Je ne sais pas ce que tu veux faire, mais tu devrais peut etre proceder de la meme façon.
Il est vrai que c'est jouable en c++, mais je suis d'accord avec BruNews pour dire que c'est du "code bidouille".
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 23 août 2007 à 11:53
Le problème en C++ c'est que le code est obligé de connaître en dynamique le type d'une variable, notamment pour manipuler les appels de fonctions virtuelles via pointeurs : si on déclare un pointeur sur classe mère et qu'on lui attribue l'adresse d'une classe fille (base du polymorphisme), le code a besoin de savoir le type de l'objet pointé pour appeller la bonne fonction.
Cela est également utilisé dans les dynamic_cast et autres du genre...
Cependant je trouve aussi qu'utiliser explicitement la reconnaissance de type dans le code est loin d'être propre...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 23 août 2007 à 12:38
Malheureusement il existe des cas où on veut effectuer une converison d'une classe dérivée
en classe de base, et dans ce cas le dynamic_cast reste la solution a utiliser, à mon avis plus propre que la définition d'une méthode virtuelle getType().