当前位置: 技术问答>linux和unix
对于结构体ip的疑惑
来源: 互联网 发布时间:2017-05-02
本文导语: 在头文件中定义的结构体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 */ uns...
在头文件中定义的结构体ip是这样的
我的疑惑是为什么不同的字节序会让ip_v字段和ip_hl字段的位置互换?
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哪个是高四位 哪个是低四位 不就乱套了嘛
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。