Chinaunix
标题:
#define TRACE(S) printf("%s;\n", #S); S #是什么意思啊?
[打印本页]
作者:
heavensword
时间:
2006-08-17 11:22
标题:
#define TRACE(S) printf("%s;\n", #S); S #是什么意思啊?
有时还会见到
两个##连着用
作者:
思一克
时间:
2006-08-17 11:48
是参数。
##是变数目参数。
这些东西,你自己一实验不就知道了吗。
作者:
duke_gun
时间:
2006-08-17 11:53
#将参数转变成字符串
例如 TRACE(whoami);
输出 whoami; new-line
##将参数宏中的参数串联起来。
作者:
heavensword
时间:
2006-08-17 13:09
自己测了一下 是#是将 表达式转化为字符串
#define TT(S) do{ \
printf("0x%x \n",((#S))) ; \
printf("0x%x \n",*((#S))); \
printf("%s \n",((#S))) ; \
/*printf("%s \n",((S))) ; */ \
/*printf("%x \n",((S))) ;*/ \
}while(0);
void main()
{
cout << "**************test \"1+1\"********************"<<endl;
TT("1+1")
cout << "**************test 1+1 ********************"<<endl;
TT(1+1)
}
[
本帖最后由 heavensword 于 2006-8-17 13:11 编辑
]
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2