if(nType&DATE)
{
for(i=0;i<1000;i++)
{
date[i]=SDate[i].date;
}
....
}
if(nType&NAME)
{
for(i=0;i<1000;i++)
{
name[i]=SDate[i].name;
}
}
{
for(i=0;i<1000;i++)
{
date[i]=SDate[i].date;
}
....
}
if(nType&NAME)
{
for(i=0;i<1000;i++)
{
name[i]=SDate[i].name;
}
}
for(i=0;i<1000;i++)
date[i]=SDate[i].date;
else
for(i=0;i<1000;i++)
name[i]=SDate[i].name;
......
这样吧:(呵呵,看起来好象太复杂啦。)
BYTE bit = 1;
struct { DATA* data1, DATA* data2 } arrData[8];
arrData[0].data1 = &date[0].name;
arrData[1].data1 = &date[0].date;
...
arrData[0].data2 = &SDate[0].name;
arrData[1].data2 = &SDate[0].date;
...
for(k = 0; k < 8 && nType; k++)
{
if(nType & bit)
{
for(i = 0; i < 1000; i++)
{
*(arrData[k].data1 + i) = *(arrData[k].data2 + i);
}
nType ^= bit;
}
bit <<= 1;
}
我的结构体的值其实是从文件中读取的,并不是从外面传进来的
其实过程是这样的:
for(i=0;i<1000;i++)
{
file.Read(&SDate,sizeof(SMyStruct))
if(nType&DATE)date[i]=SDate.date;
....
if(nType&NAME)name[i]=SDate.name;
}