symbal usage explaination
# #xxxx => "xxxx" # 将后面所跟内容化为子符串,所跟内容不能含有空白。
## a##B => ab ## 连接前后,相当于连写。
__VA_ARGS__ 参数列表宏
-------------------------------------------------------------------------------------------------------------------------------------------
#define TEST(x) (x+TEST(x)) 嵌套宏,只处理一次,不递归展开。
若宏参数也是定义的其它宏,则先展开宏参数,而后展开宏本身;
但若宏参数中含有#、##等实参数,则宏参数保持不展开;