21xrx.com
2025-04-27 15:18:44 Sunday
文章检索 我的文章 写文章
C++如何获取当前函数名称
2023-07-07 10:51:23 深夜i     25     0
C++ 获取 当前 函数名称

在C++编程中,有时候需要获取当前正在执行的函数的名称。这个问题在程序调试、日志记录、错误处理等方面非常有用。那么如何获取当前函数名称呢?

C++本身提供了一种叫做__FUNCTION__的宏定义,这个宏可以获取当前函数的名称。使用方法很简单,在程序中可以直接使用__FUNCTION__宏定义获取当前函数的名称,例如:

#include <iostream>
using namespace std;
void printFunctionName()
  cout << "Current function is: " << __FUNCTION__ << endl;
int main()
{
  printFunctionName();
  return 0;
}

在上面的代码中,我们定义了一个printFunctionName()函数,并在函数中使用了__FUNCTION__宏定义来获取函数名称,然后在控制台输出当前函数名称。最后在main函数中调用printFunctionName()函数,程序输出结果如下:

Current function is: printFunctionName

可以看到,程序成功获取了当前正在执行的函数名称。需要注意的是,__FUNCTION__宏定义的名称是在编译期确定的,因此获取到的名称不受运行期修改的影响。

另外,如果想要获取当前对象的名称,则可以使用__PRETTY_FUNCTION__宏定义。这个宏定义会返回包含参数和返回类型等完整信息的字符串,例如:

#include <iostream>
using namespace std;
void printFunctionName()
  cout << "Current function is: " << __PRETTY_FUNCTION__ << endl;
int main()
{
  printFunctionName();
  return 0;
}

上面的代码中,我们使用了__PRETTY_FUNCTION__宏定义来获取当前函数的完整信息,并在控制台输出。程序输出结果如下:

Current function is: void printFunctionName()

通过使用__FUNCTION__和__PRETTY_FUNCTION__宏定义,我们可以方便地获取当前函数的名称和完整信息,从而在程序调试、日志记录、错误处理等方面起到重要作用。

  
  

评论区

请求出错了