一个小细节,很久没有这么写过代码了

前后两段可是大不一样,后面一段才是正确的:

first:

   1:  
   2:         unsigned long curVersion=0;
   3:         unsigned long rmtVersion=0;
   4: #if (wxBYTE_ORDER==wxBIG_ENDIAN)
   5:         SparrowGetVersion(ModuleName, (unsigned char*)&curVersion, (unsigned char*)(&curVersion+1), (unsigned char*)(&curVersion+2), (unsigned char*)(&curVersion+3));
   6:         (*fnRmtGetVersion)(ModuleName, (unsigned char*)&rmtVersion, (unsigned char*)(&rmtVersion+1), (unsigned char*)(&rmtVersion+2), (unsigned char*)(&rmtVersion+3));
   7: #else //wxLITTLE_ENDIAN
   8:         SparrowGetVersion(ModuleName, (unsigned char*)(&curVersion+3), (unsigned char*)(&curVersion+2), (unsigned char*)(&curVersion+1), (unsigned char*)(&curVersion));
   9:         (*fnRmtGetVersion)(ModuleName, (unsigned char*)(&rmtVersion+3), (unsigned char*)(&rmtVersion+2), (unsigned char*)(&rmtVersion+1), (unsigned char*)(&rmtVersion));
  10: #endif

another:

   1:  
   2:         unsigned long curVersion=0x01020304;
   3:         unsigned long rmtVersion=0xAABBCCDD;
   4: #if (wxBYTE_ORDER==wxBIG_ENDIAN)
   5:         SparrowGetVersion(ModuleName, (unsigned char*)&curVersion, (unsigned char*)(&curVersion)+1, (unsigned char*)(&curVersion)+2, (unsigned char*)(&curVersion)+3);
   6:         (*fnRmtGetVersion)(ModuleName, (unsigned char*)&rmtVersion, (unsigned char*)(&rmtVersion)+1, (unsigned char*)(&rmtVersion)+2, (unsigned char*)(&rmtVersion)+3);
   7: #else //wxLITTLE_ENDIAN
   8:         SparrowGetVersion(ModuleName, (unsigned char*)(&curVersion)+3, (unsigned char*)(&curVersion)+2, (unsigned char*)(&curVersion)+1, (unsigned char*)(&curVersion));
   9:         (*fnRmtGetVersion)(ModuleName, (unsigned char*)(&rmtVersion)+3, (unsigned char*)(&rmtVersion)+2, (unsigned char*)(&rmtVersion)+1, (unsigned char*)(&rmtVersion));
  10: #endif
posted @ 2009-12-12 01:01  黄汉  阅读(216)  评论(0编辑  收藏  举报