首页 > 后端开发 > C++ > 我应该使用哪个 C/C 标识符在运行时获取函数名称?

我应该使用哪个 C/C 标识符在运行时获取函数名称?

Patricia Arquette
发布: 2024-12-13 00:13:14
原创
763 人浏览过

Which C/C   Identifier Should I Use to Get a Function's Name at Runtime?

为函数名称获取选择正确的标识符

C 和 C 提供了几个用于在运行时检索活动函数名称的标识符: __PRETTY_FUNCTION__ 、 __FUNCTION__ 和 __func__。本指南探讨了这些标识符之间的差异,并提供了它们的使用指导。

__func__:

"__func__" 是 C99 引入的标识符,表示包含以下内容的字符数组:函数的名称。它在每个函数中隐式定义。在 C 中,func 是在 C 11 中引入的,提供了实现定义的字符串。

__FUNCTION__:

"__FUNCTION__" 是一个预定义的gcc 和 Visual C 等编译器支持的标准扩展。但是,建议在受支持的情况下使用 func,仅在 func 不可用时使用 FUNCTION

__PRETTY_FUNCTION__:

“__PRETTY_FUNCTION__”是一个gcc 特定的扩展,类似于 __FUNCTION__。对于 C 函数,它显示“漂亮”的名称,包括签名。 Visual C 有一个类似的扩展 __FUNCSIG__。

决定使用哪个标识符:

选择取决于编译器支持和所需的函数名称格式:

  • 可用时使用 func (大多数现代都支持编译器)
  • 如果 func 不可用,请使用 FUNCTION
  • 使用 PRETTY_FUNCTIONFUNCSIG带有函数签名的“漂亮”名称(gcc 或 Visual C仅)

文档:

  • __func__: C99 §6.4.2.2/1
  • func (C):C 11 §8.4.1[dcl.fct.def.general]/8
  • __FUNCTION__, __PRETTY_FUNCTION__:gcc 文档,“函数名称作为字符串”
  • __FUNCSIG__:MSDN 文档,“预定义宏”(视觉 C )

以上是我应该使用哪个 C/C 标识符在运行时获取函数名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板