__FUNCTION__和朋友在Xcode中表现得很奇怪

__FUNCTION__ and friends act weird in Xcode

本文关键字:FUNCTION 朋友 Xcode      更新时间:2023-10-16

这有效

printf("%s bodyn",__PRETTY_FUNCTION__);

但这不会(错误Expected ')'):

printf(__PRETTY_FUNCTION__" bodyn");

我无法让 IDE 向我显示__PRETTY_FUNCTION__评估以确定它不起作用的原因。

__PRETTY_FUNCTION__不是宏。它的行为类似于在该函数中动态创建的静态变量。

上面链接的最后一段是:

这些标识符不是预处理器宏。在 GCC 3.3 及更早版本中,仅在 C 中,__FUNCTION____PRETTY_FUNCTION__ 被视为字符串文字;它们可用于初始化 char 数组,并且可以与其他字符串文本连接。GCC 3.4 及更高版本将它们视为变量,如 __func__ .在C++,__FUNCTION____PRETTY_FUNCTION__一直是变量。