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
Просто, чем плох самый первый или любой из эти вариантов. Зачем сразу три ?