广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ 获取当前正在运行函数的名称
  • 111
分享到

C++ 获取当前正在运行函数的名称

C++ 获取运行函数名称C++获取函数名称 2023-05-16 17:05:18 111人浏览 八月长安
摘要

目录func、FUNCTioN、__PRETTY_FUNCTION__的区别func、__FUNCTION__的区别?func、FUNCTION、__PRETTY_FUNCTION_

func、FUNCTION、__PRETTY_FUNCTION__的区别

常用获取函数名成的方法都有__func__、FUNCTION、PRETTY_FUNCTION。那么它们的区别是什么呢?

1) func、FUNCTION: 主要是获取函数的名称。
2) PRETTY_FUNCTION: 不仅能获取函数的名称,同样也能获取函数传递的参数。

#include <iOStream>

using namespace std;
int test_fun(int a, int b){
    cout << "__func__: " << __func__ << endl;
    cout << "__FUNCTION__: " << __FUNCTION__ << endl;
    cout << "__PRETTY_FUNTION__: " << __PRETTY_FUNCTION__ << endl;
    return 0;
}

int main(int arGC, char** argv){
    test_fun(1, 1);
    return 0;
}

result:
__func__: test_fun
__FUNCTION__: test_fun
__PRETTY_FUNTION__: int test_fun(int, int)

func、__FUNCTION__的区别?

FUNCTION 和 func 都是预定义的宏,用于在编译时获取当前函数的名称字符串

但是它们之间存在一些区别:

FUNCTION 是一个非标准的宏,在c++98和C++03标准中被定义为预处理器扩展。在C99和C11标准中,它已被删除。而 func 是标准 C 和 C++ 的宏,从C99/C++98开始引入。

FUNCTION 会返回包含类作用域的完整函数名,而 func 只返回函数名。例如,如果您有一个名为 MyClass::myFunction() 的成员函数,则 FUNCTION 将返回 “MyClass::myFunction”,而 func 将仅返回 “myFunction”。

在函数原型或函数定义中使用 func 时,它与函数名称具有相同的类型,即 const char[]。但是,在使用 FUNCTION 时,其类型因实现而异,通常为 const char* 或 const char[]。

综上所述,虽然这两个宏都可以用于获取当前函数的名称字符串,但 func 更好地符合标准,并且更简洁和易于使用。

到此这篇关于C++ 获取当前正在运行函数的名称的文章就介绍到这了,更多相关C++获取函数名称内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++ 获取当前正在运行函数的名称

本文链接: https://www.lsjlt.com/news/210369.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作