读书人

预加工器与变量

发布时间: 2013-04-07 12:50:11 作者: rapoo

预处理器与变量
我为了方便调试别人的代码,在stdafx.h中定义了一个宏:

#ifndef _DEBUG_FOR_ME
#define _DEBUG_FOR_ME
#endif



在需要调试,观察一些将结果的地方加上:

#include"stdafx.h"

void fun()
{

#ifdef_DEBUG_FOR_ME
int nTmpLen=(DWORD)(endMarker-curMarker);
#endif


if (curMarker-m_pRecvBuffer>0)
{

#ifdef _DEBUG_FOR_ME
nTmpLen=endMarker-curMarker;//结果nTmpLen这里过不去了,说是变量为定义。
#endif

}

}


这个fun函数所在的文件,我已经include"stdafx.h"

[解决办法]
楼主的代码看不出什么问题,两个ifdef包括的代码要么同时参与编译,要么都不参与编译,不会出现变量未定义的问题。
可能的原因:
第一个ifdef包括的代码中变量的作用域没有持续到第二个ifdef的地方,可以将ifedef endif语句都注释一下观察一下。

两个ifedef的宏拼写不一致,需要仔细检查一下。

读书人网 >C++

热点推荐