__FUNCTION__ 宏表示当前所在函数名;
__FILE__ 宏表示当前所在文件路径;
__LING__ 宏表示当前所在行;
利用对象离开函数时调用析构函数销毁的特点,打印出函数执行结束的信息
代码:
#include <iostream>
#include <cstdio>
class FunctionCallLogger
{
public:
FunctionCallLogger(const char* functionName)
{
strcpy(m_functionName, functionName);
printf("%s: %s Enter! line:%d \n", __FILE__, m_functionName, __LINE__);
}
~FunctionCallLogger()
{
printf("%s %s Leave! line:%d \n", __FILE__, m_functionName, __LINE__);
}
private:
char m_functionName[256];
};
#define LOG_FUNCTIONCALL FunctionCallLogger(__FUNCTION__);
int main()
{
LOG_FUNCTIONCALL
return 0;
}