0

シミュレーション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 コミュニティに尋ねたかったのです。

  1. この警告が発生するのはなぜですか?
  2. どうすればそれを取り除くことができますか?
4

2 に答える 2