获取函数名

1. 使用__func__宏

这个宏就代表当前所在函数的名字

在主函数中

cout<<func< 就会输出main

#include
#include
#include
#include
using namespace std;
const char* function()
{
    printf("this is function\n");
    return __func__;
}
int main()
{
    // 函数指针
    const char*(*p)();
    
    p=function;
    // 获取到函数名,保存于str
 
    char *sp=new char[10];
    sp = const_cast<char*>(p());
    printf("%s\n",sp);
 
    // 好像对string要用cout,printf不行
    string str2= sp;

	//****************************
	//如果出现问题可能是字符集的问题
	//****************************
	MessageBox(NULL,str2.c_str(),"标题",0);
    cout<<str2<<endl;
}
 

运行结果:
环境:编辑器vscode,编译器GCC6.3
获取函数名_第1张图片
这是Visual studio中的运行结果
字符集:使用多字节字符集
获取函数名_第2张图片
获取函数名_第3张图片

2. 通过函数指针来获取函数名

搜了一下,大部分都是Linux下的获取函数名
(下次补充)

你可能感兴趣的:(有趣的cpp,visual,studio,c++,ide)