理解差异:PRETTY_FUNCTION__、__FUNCTION__ 和 __func
在编程中,访问有关当前函数的信息可以对于调试、日志记录和其他目的很有用。 C 和 C 语言中三个常用的标识符提供此功能:__PRETTY_FUNCTION__、__FUNCTION__ 和 __func__。每个都有其独特的特征,值得理解。
__func__:来自 C99 的标准标识符
在 C99 中定义,func 是一个隐式声明的标识符扩展为包含使用它的函数名称的字符数组。作为声明的标识符,func 的行为与预处理器宏不同。
__FUNCTION__:预标准扩展
受到 C 编译器的广泛支持,例如gcc 和 Visual C ,FUNCTION 严格来说不是 C 的一部分 标准。它的行为通常与 __func__ 类似,但编译器之间可能存在一些不一致。
__PRETTY_FUNCTION__:GCC 扩展
PRETTY_FUNCTION 是 gcc 特定的与 __FUNCTION__ 相当的扩展名。然而,对于 C 函数,它返回“漂亮”的名称,其中包括函数的签名。
选择正确的标识符
选择要使用的标识符主要取决于支持和功能要求:
查阅特定的编译器文档也很重要非标准扩展,如 FUNCTION 和 __PRETTY_FUNCTION__。例如,Visual C 提供类似的扩展,如 __FUNCSIG__。
以上是`__PRETTY_FUNCTION__`、`__FUNCTION__` 和 `__func__` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!