C中符号#和##的作用
符号#和##的作用
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
##很有用。 本帖最后由 watershade 于 2016-4-22 21:33 编辑
学习了,这个起初是知道的。可是已经很久没用了。
另外最后一条标准不知道,起初我还以为结果是一样的呐。学习了
长知识了。。。 #
##是好东西 这个不错 学习了~ 学习了:):):):):):):):):) 学习了 :):):):):):):):) 学习了,谢谢
页:
[1]