Je veux connaître la raison de la sortie de ce code. Je ne pouvais pas trouver une réponse.Préprocesseur C: macro de macro de chaînage et macro d'identité
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
void main()
{
printf("%s %s",h(f(1,2)),g(f(1,2)));
}
PS: la sortie est 12 f(1,2)
. Je pensais que c'était 12 12
ou f(1,2) f(1,2)
.
juste pour apprendre le travail du préprocesseur ... – Dhatri
@cnicutar Je pense qu'il l'a trouvé ici: http://cracktheinterviewers.blogspot.com/2012_03_01_archive.html – Dave
il n'a pas été écrit par moi .. il a été demandé dans un test. – Dhatri