不解:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道
疑惑:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道?
最近看到别人写的一段代码,每个函数都有一个FUNC_NAME宏定义,实在搞不清楚有什么意义,怎么感觉就是做无用功
特注明:FUNC_NAME除了这个#undef和#define用到之外,别的地方都没用到。FUNC_NAME难道是特别的宏定义?
我的意思,如果要调试,完全可以用 __FILE__,__LINE__,FUNCTION__这些编译器预设的宏定义.没必要这么做
如下,求指点:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::Write"
HRESULT CSPIComm::Write(LPVOID pData, USHORT Length)
{
....
}
或:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::Read"
HRESULT CSPIComm::Read(LPVOID pData, USHORT Length)
{
....
}
例:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::IODRVEventThread"
DWORD WINAPI CSPIComm::IODRVEventThread(LPVOID pParam)
{
....
}
------解决方案--------------------
------解决方案--------------------
标准有定义 __func__,可以用这个。不过标准没说 __func__ 到底应该是什么内容,只是说一个有实现定义的描述函数名的字符数组。用 FUNC_NAME 的话,可以自己控制,函数名字符串的具体内容。
------解决方案--------------------
这种手动定义宏个人不推荐
如果函数名改了,还得改相应宏。
我都是用__func__
------解决方案--------------------
最近看到别人写的一段代码,每个函数都有一个FUNC_NAME宏定义,实在搞不清楚有什么意义,怎么感觉就是做无用功
特注明:FUNC_NAME除了这个#undef和#define用到之外,别的地方都没用到。FUNC_NAME难道是特别的宏定义?
我的意思,如果要调试,完全可以用 __FILE__,__LINE__,FUNCTION__这些编译器预设的宏定义.没必要这么做
如下,求指点:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::Write"
HRESULT CSPIComm::Write(LPVOID pData, USHORT Length)
{
....
}
或:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::Read"
HRESULT CSPIComm::Read(LPVOID pData, USHORT Length)
{
....
}
例:
#undef FUNC_NAME
#define FUNC_NAME L"CSPIComm::IODRVEventThread"
DWORD WINAPI CSPIComm::IODRVEventThread(LPVOID pParam)
{
....
}
------解决方案--------------------
------解决方案--------------------
标准有定义 __func__,可以用这个。不过标准没说 __func__ 到底应该是什么内容,只是说一个有实现定义的描述函数名的字符数组。用 FUNC_NAME 的话,可以自己控制,函数名字符串的具体内容。
------解决方案--------------------
这种手动定义宏个人不推荐
如果函数名改了,还得改相应宏。
我都是用__func__
------解决方案--------------------