还是六个,只是没有连续存储,如果把
unsigned char arp_tha[6];
unsigned long arp_tpa;
调换一下应该可以了吧。

解决方案 »

  1.   

    unsigned char eh_dst[6];
    unsigned char eh_src[6];
    unsigned short eh_type;     unsigned short arp_hrd;
    unsigned short arp_pro;
    unsigned char arp_hln;
    unsigned char arp_pln;
    unsigned short arp_op; unsigned char arp_sha[6];
    到这一步刚好占了28个字节,刚好与最长的long型对齐了。而下面的unsigned char arp_tha[6];占六个字节,必须再加两个字节和下面的long 型数据对齐。这就是结构中的各类型变量的对齐原则。
      

  2.   

    如果最后一个成员是unsighed short(2Byte),就不会有这种情况。
      

  3.   

    呵呵,给人先说了。对齐原则:long 从4的倍数放!