读书人

不解:拿到一段代码每个函数前面都

发布时间: 2012-07-29 15:26:14 作者: rapoo

疑惑:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道?
最近看到别人写的一段代码,每个函数都有一个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_NAME宏定义,实在搞不清楚有什么意义,怎么感觉就是做无用功

特注明:FUNC_NAME除了这个#undef和#define用到之外,别的地方都没用到。FUNC_NAME难道是特别的宏定义?


我的意思,如果要调试,完全可以用 __FILE__,__LINE__,FUNCTION__这些编译器预设的宏定义.没必要这么做


如……

[解决办法]
标准有定义 __func__,可以用这个。不过标准没说 __func__ 到底应该是什么内容,只是说一个有实现定义的描述函数名的字符数组。用 FUNC_NAME 的话,可以自己控制,函数名字符串的具体内容。
[解决办法]
这种手动定义宏个人不推荐
如果函数名改了,还得改相应宏。

我都是用__func__

[解决办法]
探讨

这种手动定义宏个人不推荐
如果函数名改了,还得改相应宏。

我都是用__func__

读书人网 >C++

热点推荐