Ho un programma.Cosa fa esattamente # in C?
#include <stdio.h>
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
{
printf("%s\n",h(f(1,2)));
printf("%s\n",g(f(1,2)));
return 0;
}
Questo programma funziona correttamente e dando uscita come:
12
f(1, 2)
Non capisco come compilatore dando questa uscita.
Qual è la funzione di # in a##b
e #a
?
http://stackoverflow.com/questions/16989730/c-stringify-how-does-it-work –
@YuHao, mi dispiace davvero . Ho cercato questa domanda. Non ho avuto alcuna relazione. perché non so # si chiama stringify. – SGG
@SGG Ehi, va bene perché è difficile cercare questa domanda perché non ci sono parole chiave particolari. Ricordo di aver visto questo programma in passato e di aver speso diversi minuti per trovare il duplicato :) Pur conoscendo l'uso di base di '#' e '##', questa domanda è ancora difficile da ottenere. –