给出一个项目下面的代码我工作:GCC __func__被评价为空字符串
/* Pre-definitions in a pre-definitions file to be included in the project */
#ifdef WIN32
#define __FUNCNAME__ __FUNCTION__
#else
#define __FUNCNAME__ __func__
#endif
/* My definitions */
#define MAC() \
MAC1()
#define MAC1() \
myPrintFunction(__FUNCNAME__)
/* My print function */
void myPrintFunction(const char * functionName)
{
printf("\n func name: %s \n",functionName);
}
/* Macro usage example function */
void myFunction()
{
if (some_condition)
{
MAC();
}
}
函数名称是作为一个空字符串。 任何想法为什么,我该如何解决它?
使用GCC编译器在Linux机器上编译和测试的代码。
你确定'some_condition'是真的吗? – freestyle
没有'main()'?请发布[最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。 – DevSolar
是的,我确定。我可以看到“\ n func名称:\ n”,并且我正在用调试器调试此代码,并且正在执行代码。 – user2162550