读书人

对于结构体ip的迷惑

发布时间: 2013-12-10 15:05:55 作者: rapoo

对于结构体ip的疑惑
在头文件<netinet/ip.h>中定义的结构体ip是这样的


struct ip
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4; /* header length */
unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4; /* version */
unsigned int ip_hl:4; /* header length */
#endif

......省略其他字段
}

我的疑惑是为什么不同的字节序会让ip_v字段和ip_hl字段的位置互换?
[解决办法]
大端字节序,小端字节序,我猜是用指针 加减的时候 统一方便吧
[解决办法]
这个ip_v和ip_hl共用的同一个int类型的空间啊,当然要分大端和小端了,不然ip_v和ip_hl哪个是高四位 哪个是低四位 不就乱套了嘛

读书人网 >UNIXLINUX

热点推荐