#pragma  pack(1)  
struct  mm  
{  
   int  i;  
   char  m[9];  
}  
#pragma  
mm  _mm;  
_mm.i=4;  
_mm.m[0]='w';  
_mm.m[1]='\0';  
这样我以结构体的形式发送给对方,对方将收到多少个字节的数据?  

解决方案 »

  1.   

    4+9=13个呀,因为加了 #pragma  pack(1)   内存以字节排列呀
      

  2.   

    刚刚写代码测试过typedef struct _PACKET
    {
    int          nCode;
    char         *pszName;
    char         age[10];
    }PACKET , *LPPACKET; PACKET p;
    p.nCode = 5;
    strcpy(p.age, "test");
    p.pszName = "ffdfdf";
    send(s, (char*)&p, sizeof(p), 0);
    ------------------------------------- PACKET p;
    ZeroMemory(&p, sizeof(p));
    recv(ss, (char*)&p, sizeof(p), 0);
    AfxMessageBox(p.age);
    AfxMessageBox(p.pszName);
    一切正常