头文件中有一个结构体
 struct Coordinates
 {
  short xA_To, yA_To;
  short xA_Destination, yA_Destination;
  short xA_Phone, yA_Phone;
  short xA_CompanyName, yA_CompanyName;
  short xA_Address, yA_Address;
  short xA_Province, yA_Province;
  short xA_City, yA_City;
  short xA_Town, yA_Town;
  short xA_CITY, yA_CITY;
  short xA_PostalCode, yA_PostalCode;
  short xC_From, yC_From;
  short xC_Departure, yC_Departure;
  short xC_Phone, yC_Phone;
  short xC_CompanyName, yC_CompanyName;
  short xC_Address, yC_Address;
  short xC_Province, yC_Province;
  short xC_City, yC_City;
  short xC_Town, yC_Town;
  short xC_PostalCode, yC_PostalCode;
  short xU_Hook, yU_Hook;
  short xU_String, yU_String;
  short xU_Double, yU_Double;
  short xU_Y, yU_Y;
  short xU_M, yU_M;
  short xU_D, yU_D;
  short xU_H, yU_H;
 };
定义了
Coordinates MoveXY;
程序在执行到某个函数时会循环得到一些数据.
我想让这个结构体能象数组那样自加或自减,那样就不用使用switch了.(数据成员有点多)
请问有什么办法没?谢谢!

解决方案 »

  1.   

    都是short,定义一个数组不就搞订了吗?
      

  2.   

    结构体和数组的内存组织是一样的,你这里正好全是short,可以利用指针来做Coordinates co={0};
    short* pCo=new short[sizeof(Coordinates)/sizeof(short)];
    short* pCoStore=pCo;
    memset(pCo,0,sizeof(Coordinates));
    for(xx;xx;pCo++)
    {
      *pCo=xx;
    }memcpy(&co,pCoStore,sizeof(Coordinates ));
      

  3.   

    定义一个52元素的short型数组,然后利用memcpy将原来的结构体拷贝到数组里(先强制转换为char型)
    在操作数组就可以了
      

  4.   


    union 
    {
        struct Coordinates
        {
          ......
        }
        short Coordinates_[52]; //是52个?
    }