我的代码看起来像这样,其中 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
在网上搜索,我发现一些关于我做事方式非常典型的事实的讨论,但是这个编译器警告也很真实,不是一件好事。
重做此代码以修复警告而不只是使其静音的正确方法是什么?