读书人

warning C4005: #039;DBGMSG#039; : macro red

发布时间: 2012-03-12 12:45:33 作者: rapoo

warning C4005: 'DBGMSG' : macro redefinition 如何修正?
dbgdef.h的内容
-------------------
DBGMSG(BASE=1000, " "),
DBGMSG(AAA, "AAA "),
DBGMSG(BBB, "BBB "),
DBGMSG(CCC, "CCC "),
DBGMSG(DDD, "DDD "),
DBGMSG(EEE, "EEE "),
DBGMSG(FFF, "FFF "),
DBGMSG(GGG, "GGG "),
DBGMSG(MAX, " "),


/********************/
dbgdef.cpp的内容
-------------------
#define DBGMSG(A,B) A

enum _dbgdef
{
#include "defdbg.h "
}dbgdef;


#define DBGMSG(A,B) B
char *str[]=
{
#include "defdbg.h "

};

char * GetDbgTxt(int dbgcode)
{
return str[dbgcode-BASE];
}

int main(int argc, char* argv[])
{
printf( "%s\n ",GetDbgTxt(DDD));


return 0;
}
可以正常运行,就是编译有警告。
如何修正代码或者给我比较好的解决方案可以根据标识符获得其文字描述?

[解决办法]
#ifdef DBGMSG
#undef DBGMSG

在这里重新定义 DBGMSG

#endif

读书人网 >C语言

热点推荐