符号#和##的作用 1. 仅用于预处理宏扩展,只能在宏定义中使用; 2. #用于将参数转换为字符串; 3 ##用于将两个宏参数连接在一起; 4. 转换顺序:在展开当前宏参数时,若形参中无#和##时,展开宏参数再展开宏;若有在不进行宏参数展开; #define CONNECT(a,b) a##b #define STR(a) #a #define TEST(a) STR(a) 则: printf("STR(CONNECT(con,2))=%s\n", STR(CONNECT(con,2))); printf("TEST(CONNECT(con,2))=%s\n", TEST(CONNECT(con,2))); 输出是: STR(CONNECT(con,2))=CONNECT(con, 2) TEST(CONNECT(con,2))=con2 |
学习了,这个起初是知道的。可是已经很久没用了。
另外最后一条标准不知道,起初我还以为结果是一样的呐。学习了
## 是好东西