问一个关于宏定义的问题?很少见的……

iiisan 2006-07-21 09:57:27
#define FUNCTRACE(str) \
CFuncTrace _$FUNCTRACE$_(str, 6)
其中CFuncTrace是一个Class.

我搞不懂_$和$_是干吗的,有人知道么
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-07-21
  • 打赏
  • 举报
回复
其中CFuncTrace是一个Class.
==============
...

没有看到这个 ..汗
宏替换一下就看出来了 ....
iiisan 2006-07-21
  • 打赏
  • 举报
回复
thanks
tailzhou 2006-07-21
  • 打赏
  • 举报
回复
_$和$_ 就是变量名的一部分,没特殊的含义,

printf("%d %d",_$FUNCTRACE$_.i,_$FUNCTRACE$_.j);

能正常运行
jixingzhong 2006-07-21
  • 打赏
  • 举报
回复
没有 _$ 这样的特殊符号吧?
是不是 _$FUNCTRACE$_ 也是一个定义?
tailzhou 2006-07-21
  • 打赏
  • 举报
回复
变量的名字就是 _$FUNCTRACE$_

#include <stdio.h>
#define FUNCTRACE(str) \
ttt _$FUNCTRACE$_(str, 6)

class ttt
{
public:
int i;
int j;
ttt()
{
i=0;
j=0;
}
ttt(int ii,int jj)
{
i=ii;
j=jj;
}
};

int main(void)
{
FUNCTRACE(2);
printf("%d %d",_$FUNCTRACE$_.i,_$FUNCTRACE$_.j);
return 0;
}
tailzhou 2006-07-21
  • 打赏
  • 举报
回复
明白了。其实是定义一个CFuncTrace的变量而已;

CFuncTrace有一个带两参数的构造函数;

iiisan 2006-07-21
  • 打赏
  • 举报
回复
这个宏好用啊 直接就这么调用 FUNCTRACE("XXXXXXXXXXXXXXXX");
tailzhou 2006-07-21
  • 打赏
  • 举报
回复
既不象函数申明,也不象函数定义,也不象函数调用;

不懂;

请lz copy一段用了这个宏的代码来 学习学习?

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧