У меня есть код, который выглядит примерно так, где addr - sockaddr *:
struct sockaddr_in *sin = (struct sockaddr_in *) addr;
const char *IP=inet_ntoa(sin -> sin_addr);
Я считаю, что это очень типичный код для использования сокетов Berkeley.
Однако, когда я скомпилирую это, я получаю следующее предупреждение: dereferencing pointer 'sin' does break strict anti-aliasing rules
Поиск в Интернете, я нахожу некоторое обсуждение того факта, что способ, которым я занимаюсь, довольно типичен, но это предупреждение компилятора также довольно реально и не очень хорошо.
Какой правильный способ повторить этот код, чтобы исправить это предупреждение, а не просто отключить его?