21xrx.com
2024-11-22 06:31:24 Friday
登录
文章检索 我的文章 写文章
C++如何获取当前函数名称
2023-07-07 10:51:23 深夜i     --     --
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__宏定义,我们可以方便地获取当前函数的名称和完整信息,从而在程序调试、日志记录、错误处理等方面起到重要作用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复