Winsock: Структура in_addr структуры sockaddr_in

Вопрос больше из любопытства, может кто может объяснить в чем сакральный смысл структуры in_addr структуры sockaddr_in: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/ns-winsock2-in_addr

struct in_addr {
  union {
    struct {
      u_char s_b1;
      u_char s_b2;
      u_char s_b3;
      u_char s_b4;
    } S_un_b;
    struct {
      u_short s_w1;
      u_short s_w2;
    } S_un_w;
    u_long S_addr;
  } S_un;
};

То есть эста структура предназначена для хранения IPv4 адреса, я просто не понимаю зачем аж целых три варианта хранения:

-В виде массива 4 char`ов

-В виде массиве 2ух unsigned short`ов

-И в виде одного unsigned long

Просто, чем плох самый первый или любой из эти вариантов. Зачем сразу три ?


Ответы (0 шт):