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


本篇内容主要讲解“C++怎么获取当前正在运行函数的名称”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++怎么获取当前正在运行函数的名称”吧!

func、FUNCTION、__PRETTY_FUNCTION__的区别

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

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

#include<iostream>usingnamespacestd;inttest_fun(inta,intb){cout<<"__func__:"<<__func__<<endl;cout<<"__FUNCTION__:"<<__FUNCTION__<<endl;cout<<"__PRETTY_FUNTION__:"<<__PRETTY_FUNCTION__<<endl;return0;}intmain(intargc,char**argv){test_fun(1,1);return0;}result:__func__:test_fun__FUNCTION__:test_fun__PRETTY_FUNTION__:inttest_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++怎么获取当前正在运行函数的名称”有了更深的了解,不妨来实际操作一番吧!这里是主机评测网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


上一篇:基于Mongodb分布式锁怎么解决定时任务并发执行问题

下一篇:MySQL中常见的高可用架构部署方案有哪些


Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
热门搜索