免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5094 | 回复: 3
打印 上一主题 下一主题

#define TRACE(S) printf("%s;\n", #S); S #是什么意思啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-17 11:22 |只看该作者 |倒序浏览
有时还会见到
两个##连着用

论坛徽章:
0
2 [报告]
发表于 2006-08-17 11:48 |只看该作者
是参数。
##是变数目参数。

这些东西,你自己一实验不就知道了吗。

论坛徽章:
0
3 [报告]
发表于 2006-08-17 11:53 |只看该作者
#将参数转变成字符串
例如 TRACE(whoami);
输出 whoami; new-line

##将参数宏中的参数串联起来。

论坛徽章:
0
4 [报告]
发表于 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 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP