シミュレーションwarning
をコンパイルすると、次のメッセージが表示されます。client - server UDP socket
警告: タイプ 'socklen_t *' (別名 'unsigned int *') のパラメーターに 'int *' を渡すと、異なる符号を持つ整数型へのポインター間で変換されます [-Wpointer-sign]
これは関係するコードです:
#define BUFLEN 2048
struct sockaddr_in myaddr, remaddr;
int fd, recvlen, slen=sizeof(remaddr);
...
char response[BUFLEN];
recvlen = recvfrom(fd, response, BUFLEN - 1, 0, (struct sockaddr *)&remaddr, &slen);
ラトガース大学のチュートリアルを参照しています。この警告が発生する理由についてはかなりの考えがありますが (使用する必要がありますsocklen_t *
)、SO コミュニティに尋ねたかったのです。
- この警告が発生するのはなぜですか?
- どうすればそれを取り除くことができますか?