在C语言中,常用获取函数名成的方法都有__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)