如果我问一个明显的问题,请原谅我,但是在经历了一堆线程并尝试了一些东西之后,我无法确定这个简单的事情。
我有这个小程序:
#define FUNC_PREFIX __FUNCTION__ "() :"
int main()
{
printf("%s\n", FUNC_PREFIX);
return 0;
}
所以我可以传递FUNC_PREFIX
而不是__FUNCTION__
记录函数,它们将打印调用函数名称,后跟括号和冒号——只是为了提高日志行输出的可读性。
这在 Visual Studio 2008 中按原样编译。但是在 中g++
,我在字符串常量之前得到一个预期的错误 ')'
我尝试了一些类似的事情:
#define TEMP __FUNCTION__
#define FUNC_PREFIX TEMP "() :"
但无济于事。
这样做的方法是什么?