如果我问一个显而易见的问题,请原谅我,但是在查看了很多帖子并尝试了一些东西后,我仍然无法确定这个简单的事情。
我有这个小程序:
#define FUNC_PREFIX __FUNCTION__ "() :"
int main()
{
printf("%s\n", FUNC_PREFIX);
return 0;
}
我可以将__FUNCTION__
替换为FUNC_PREFIX
以记录函数名并在括号和冒号后面输出,从而提高日志行输出的可读性。
这段代码在Visual Studio 2008中编译没有问题。但是在g++
中会出现错误:expected ‘)’ before string constant。
我尝试了一些方法,例如:
#define TEMP __FUNCTION__
#define FUNC_PREFIX TEMP "() :"
但是没有任何效果。
如何着手解决这个问题?
printf
系列函数。例如,strcpy(buffer,FUNC_PREFIX)
不会编译,但是strcpy(buffer,(FUNC_PREFIX))
会 - 但它不会做你想要的事情。 - Jonathan Leffler