sor*_*rin 1 macros visual-c++ c-preprocessor
我发现一些代码用宏包装函数调用NAME(),
#define NAME(x) x
...
m_strTemp.Format("x key:0x%X", NAME(a_function)(a_param));
Run Code Online (Sandbox Code Playgroud)
问题是如何定义NAME()宏,以便记录使用的函数TRACE().
类似的东西#define NAME(x) TRACE("x");x不起作用,因为NAME()宏包装的函数可能返回东西,有时它们像上面的例子一样被使用.
注意,这必须与VC++ 2010编译器一起使用.
这可能会做你想要的:
#define NAME(x) (TRACE(#x), x)
Run Code Online (Sandbox Code Playgroud)
(注意,您可以将函数指示符括在parantheses中,例如(strlen)("foo")允许).
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |