IP заголовок поможет? - PullRequest
       9

IP заголовок поможет?

0 голосов
/ 06 апреля 2011

Почему в структуре 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_hl до ip_v, не следует ip_hl передавать после ip_v?

1 Ответ

1 голос
/ 20 апреля 2011

Endianess также влияет на то, как компилятор помещает поля битовых полей («: 4» в конце означает, что значение составляет всего 4 бита) в байтах результирующей структуры.Для big-endian биты заполняются из наиболее значимых.Для little-endian биты заполняются из наименее значимых.

...