预处理器与变量
我为了方便调试别人的代码,在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的宏拼写不一致,需要仔细检查一下。