Ajent J
Messages postés4Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention26 novembre 2005
-
26 nov. 2005 à 20:29
sydis
Messages postés1Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention 6 avril 2006
-
6 avril 2006 à 09:51
Est ce qu'il est possible de construire un nom de variable par concatenation comme en PHP ?
Ajent J
Messages postés4Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention26 novembre 2005 26 nov. 2005 à 20:40
J'aurais bien voulu que ca soit un tableau.
Mais c'est vrai que c'est un peu le principe sauf que toute les variables mavariableX existent déjà et que je peux pas les supprimer pour faire un tableau puisque ce sont des ID de contrôles MFC.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 26 nov. 2005 à 22:56
Tu devrais modifier ton fichier resource.h pour que tes ID soient consécutifs (attention quand même a ne pas avoir d'ID dupliqués). Tu pourra alors facilement utiliser une boucle for
Vous n’avez pas trouvé la réponse que vous recherchez ?
Il faudrait que puisse faire un truc dans ce gout dans ma boucle et que i soit remplacé par sa valeur.
Mais le je ne vois pas comment faire pour le IDC_i.
sydis
Messages postés1Date d'inscriptionjeudi 27 janvier 2005StatutMembreDernière intervention 6 avril 2006 6 avril 2006 à 09:51
Bonjour,
Construire un nom de variable ou de fonction par concaténation est possible !
(mais pas très utile pour l'exemple de Ajent J)
Parfois, il y a un moyen de raccourcir le code à écrire en utilisant le double dièse du précompilateur :
#define MON_BOUT_DE_CODE_A_REPETER(SUFFIXE)\
for(int i=0; i<2; i++)\
{\
maVariable##SUFFIXE = un_pointeur_objet_##SUFFIXE->un_membre;\
un_autre_truc_qui_a_besoin_du##SUFFIXE = autre_chose_encore;\
...\
}
//toujours mettre des back-slash à chaque fin de ligne,
//sauf la dernière, pour continuer la ligne de définition
/**************/
ma_fonction(int truc)
{
switch(truc)
{
case 1:
MON_BOUT_DE_CODE_A_REPETER(suffixe1)
break;
case 2:
MON_BOUT_DE_CODE_A_REPETER(suffixe2)
break;
}
...
}
Dommage qu'on ne puisse pas mettre une variable en paramètre, cela aurait aidé l'Ajent J !!!