首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

不解:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道

2012-07-29 
疑惑:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道?最近看到别人写的一段代码,每个函数

疑惑:拿到一段代码,每个函数前面,都以函数名定义一个宏定义,有啥说道?
最近看到别人写的一段代码,每个函数都有一个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__

热点排行