2017-09-18 7 views
0

Comment concenrer correctement un entier avec une macro? Je dois l'appeler deux fois ici parce que je ne peux pas ajouter quelque chose après « » (erreur)Concenation d'entier avec macro

#define concat(a,b,c) a##b##c 
dim as integer a=10,b=20,c=30,d 
d = a concat(*100+,,)b 
d = d concat(*100+,,)c 
?d 'output = 102030 
sleep 

Répondre

0

J'ai trouvé une solution de forum FreeBasic

#define concat(a,b,c) (((a)*100+(b))*100+(c)) 
dim as integer a=10,b=20,c=30,d 
d = concat(a,b,c) 
?d 'output = 102030 
sleep 
+0

Cela ne fonctionnera pas dans tous les cas. Si c est 300 alors vous obtiendrez 1002300 au lieu de 10020300. Voyez ma réponse si vous avez besoin de quelque chose de plus précis. – Joe

1
#define concat(a,b,c) val(str(a)+str(b)+str(c))