了解 PRETTY_FUNCTION__、__FUNCTION__ 和 __func
之间的差异在编码领域,理解这一点至关重要三个标识符的区别: __PRETTY_FUNCTION__、__FUNCTION__ 和 __func__。每个都有其独特的属性和文档,根据所需的结果影响我们的选择。
深入研究 func
在 C99 中引入,func 提供了一个简单的解决方案,用于在函数范围内访问当前函数的名称。它扩展为包含未修饰的函数名称的字符数组。这个标识符在 C 中也得到了关注,在 C 11 中添加了一个稍微不同的定义:“实现定义的字符串。”
探索 FUNCTION
某些 C 编译器支持 FUNCTION 作为预标准扩展,但是仅仅依赖它是不可取的。对于缺乏 func 支持的编译器,FUNCTION 可以作为替代品,尽管与标准化版本相比有局限性。
Enter PRETTY_FUNCTION
__PRETTY_FUNCTION__ 是 gcc 特有的扩展,其操作与 __FUNCTION__ 类似。然而,在 C 函数的上下文中,它提供了函数名称的增强版本,以及函数签名。 Visual C 在 __FUNCSIG__ 中提供了类似的替代方案,但有细微的差别。
文档和可用性
对于非标准宏,请谨慎参考相应的编译器文档。 Visual C 扩展在 MSDN 中 C 编译器的“预定义宏”下有详细记录,而 gcc 扩展则在文档页面“函数名称作为字符串”中介绍。
选择正确的标识符
选择适当的标识符取决于所需的结果和编译器
通过理解了解这些标识符的细微差别,您可以有效地利用它们的力量来获取您在编码工作中所需的功能相关信息。
以上是`__PRETTY_FUNCTION__`、`__FUNCTION__` 和 `__func__` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!