结构体和共同体的定义

作者在 2009-02-19 11:41:05 发布以下内容

typedef struct{
    UINT32  sourceip;    //源IP地址
  UINT32  destip;      //目的IP地址
  UINT8  mbz;        //置空(0)
  UINT8  ptcl;        //协议类型
  UINT16  plen;       //TCP/UDP数据包的长度
}Tcp_Psd_Header,Udp_Psd_Header;


typedef union {
    struct ip{
        UINT32  sourceip;    //源IP地址
   UINT32  destip;      //目的IP地址
   UINT8  mbz;        //置空(0)
   UINT8  ptcl;        //协议类型
   UINT16  plen;       //TCP/UDP数据包的长度
    };
 UINT8 Psd[12];
}Tcp_Psd_Header,Udp_Psd_Header;

数据结构 | 阅读 5495 次
文章评论,共1条
vfdff(作者)
2009-02-19 12:08
1
// VC6.0 下运行正确,而Win-TC 下运行结果不合理 2009/2/19 <br />
<br />
#include &quot;stdio.h&quot;<br />
#include &quot;conio.h&quot;<br />
<br />
typedef unsigned char UINT8;&nbsp;&nbsp;&nbsp;<br />
typedef unsigned short UINT16;<br />
typedef unsigned long UINT32;<br />
<br />
typedef struct{<br />
&nbsp;&nbsp;&nbsp;&nbsp;UINT32&nbsp;&nbsp;sourceip;&nbsp;&nbsp;&nbsp; //源IP地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;UINT32&nbsp;&nbsp;destip;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//目的IP地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;UINT8&nbsp;&nbsp;mbz;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//置空(0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;UINT8&nbsp;&nbsp;ptcl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//协议类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;UINT16&nbsp;&nbsp;plen;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //TCP/UDP数据包的长度<br />
}Tcp_Psd_Header,Udp_Psd_Header;<br />
<br />
void main()<br />
{<br />
&nbsp;&nbsp;&nbsp; Udp_Psd_Header *pudp_psd_header = NULL;<br />
&nbsp;&nbsp;&nbsp; UINT8 packet[12] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b};<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; pudp_psd_header = (Udp_Psd_Header *) packet ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,sizeof(UINT32));<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%x\n&quot;,pudp_psd_header-&gt;sourceip);<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%x\n&quot;,pudp_psd_header-&gt;destip);<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%x\n&quot;,pudp_psd_header-&gt;mbz);<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%x\n&quot;,pudp_psd_header-&gt;ptcl);<br />
&nbsp;&nbsp;&nbsp; printf(&quot;%x\n&quot;,pudp_psd_header-&gt;plen);<br />
&nbsp;&nbsp;&nbsp; getch();<br />
}
游客请输入验证码
浏览1941134次