These days, I am checking sys_mount() implementation. During the code reading, I find I can not tell most of the details of macro stringification and concatenation now.
After spending 1.5 days on google and gcc online manual, I re-read macro and preprocessor related part, especially on the stringification and concatenation. After the reading, I write an document for most of the outlines. The document can be found from here [click the URL to download].
Wish it can be helpful to others, of cause I will re-read this doc again and again in future