我写了一个如下的结构体:LPVOID lpMapFileStartAdd;//内存映射文件的空间首地址typedef struct tagHanzi
{
WORD   wHanziNum;  
TCHAR  szJiBenHanzi[3]; 
struct tagHanzi _based(lpMapFileStartAdd) *Next;
        
        //构造函数
       struct tagHanzi()
      {
       wHanziNum=0;
       strcpy(szJiBenHanzi,"\0");
       Next=NULL;       }
}HanZi;
void main()
{
  HanZi  hanzi;  printf("%d",wHanziNum);
}
编译的时候出现了问题!
          1  我把文件存成  *.C 文件,编译时就不会说 _base 有错。但是说 结构体中 的构造函数有错。
           2  我把文件存成  *.CPP 文件,编译时就会说 _base 有错。但是说 结构体中 的构造函数又没错。
            
 问题:
        为什么会出现这种情况?