給出一個項目下面的代碼我工作: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