什麼是a##b
& #a
?這個C代碼是如何工作的?
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
main()
{
printf("%s\n",h(f(1,2))); //how should I interpret this?? [line 1]
printf("%s\n",g(f(1,2))); //and this? [line 2]
}
該程序如何工作?
輸出是
12
f(1, 2)
現在我明白瞭如何a##b
& #a
工作。 但是爲什麼在兩種情況下(第1行和第2行)的結果不同?
當你運行該程序時會發生什麼?這樣做應該可以幫助你瞭解正在發生的事情。 – 2009-11-06 09:02:53
真的,用這段代碼玩一會兒就會發光。如果您有任何具體問題,請隨時在這裏問問他們。 – sharptooth 2009-11-06 09:04:38