这有效
printf("%s body\n",__PRETTY_FUNCTION__);
但这不会(错误Expected ')'
):
printf(__PRETTY_FUNCTION__" body\n");
我无法让 IDE 向我展示__PRETTY_FUNCTION__
评估的内容以确定它为什么不起作用。
这有效
printf("%s body\n",__PRETTY_FUNCTION__);
但这不会(错误Expected ')'
):
printf(__PRETTY_FUNCTION__" body\n");
我无法让 IDE 向我展示__PRETTY_FUNCTION__
评估的内容以确定它为什么不起作用。
__PRETTY_FUNCTION__
不是宏。它的行为类似于在该函数中动态创建的静态变量。
上面链接中的最后一段内容如下:
这些标识符不是预处理器宏。在 GCC 3.3 及更早版本中,仅在 C 中,
__FUNCTION__
并被__PRETTY_FUNCTION__
视为字符串文字;它们可用于初始化 char 数组,并且可以与其他字符串文字连接。GCC 3.4 及更高版本将它们视为变量,例如__func__
. 在 C++ 中,__FUNCTION__
一直__PRETTY_FUNCTION__
都是变量。