为什么用define定义了常量还是出现未声明标识的错误呢,好奇怪
真是搞不懂,请看
//ChunkID.h
#define MAT_NAME 0xA000
#define MAT_AMBIENT 0xA010
#define MAT_DIFFUSE 0xA020
#define MAT_SPECULAR 0xA030
#define MAT_SHININESS 0xA040
#define COLOR_RBG 0x0010
#define COLOR_F 0x0011
//Model3ds.cpp
#include"ChunkID.h"
void Model3ds::ReadMaterial(Chunk chunk)
{
int datasize=(int)(chunk.Len-ChunkheadSize());
Chunk mychunk;
float r,g,b;
Material mat;
while(datasize>0)
{
ReadChunk(mychunk);
datasize=datasize-mychunk.Len;
switch(mychunk.ID)
{
case MAT_NAME:
mat.name=Readstring();
break;
case MAT_AMBIENT:
ReadColor(r,g,b);
mat.AmbientColor[0]=r;
mat.AmbientColor[1]=g;
mat.AmbientColor[2]=b;
break;
case MAT_DIFFASE:
ReadColor(r,g,b);
mat.DiffuseColor[0]=r;
mat.DiffuseColor[1]=g;
mat.DiffuseColor[2]=b;
break;
case MAT_SPECULAR:
ReadColor(r,g,b);
mat.SpecularColor[0]=r;
mat.SpecularColor[1]=g;
mat.SpecularColor[2]=b;
break;
case MAT_SHININESS:
break;
default:
IgnoreChunk(mychunk);
}
}
}
调试出现以下:
1>e:\c++练习\load3ds\load3ds\model3ds.cpp(160) : error C2065: “MAT_NAME”: 未声明的标识符
请问一下为什么会出现这种报错呢?我明明声明了标识符,为什么又说未声明呢?而其它几个标识符又为什么没报错呢?编译环境是vs2008。请高手给个解释