Ich habe ein Programm.Was macht '#' genau 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;
}
Dieses Programm korrekt funktioniert und geben Ausgang als:
12
f(1, 2)
Ich verstehe nicht, wie Compiler diese Ausgabe zu geben. Wie lautet die Funktion von # in a##b
und ?
http://stackoverflow.com/questions/16989730/c-stringify-how-does-it-work –
@YuHao, ich bin wirklich leid . Ich habe nach dieser Frage gesucht. Ich habe keine Verwandten bekommen. weil ich nicht weiß # heißt stringify. – SGG
@SGG Hey, das ist in Ordnung, weil es schwierig ist, nach dieser Frage zu suchen, da es kein bestimmtes Keyword gibt. Ich erinnere mich, dass ich dieses Programm schon einmal gesehen hatte und immer noch einige Minuten damit verbracht habe, das Duplikat zu finden :) Selbst wenn man die grundlegende Verwendung von '#' und '##' kennt, ist diese Frage immer noch schwer zu bekommen. –