0

コード

struct sockaddr_in ser;
...
#line 68
fprintf(stderr, "Can't find host %s\n", inet_ntoa(ser.sin_addr));

コンパイル(gcc ...)警告

68: warning: format '%s' expects type 'char *', but argument 3 has type 'int'

しかし、「inet_ntoa()」は「char *」を返すはずですよね?

4

1 に答える 1

2

デフォルトでは、アクティブなプロトタイプなしで使用される関数はを返しますint。この動作は、ISO C標準(少なくともC90では)で指定されています。

コンパイラが適切なプロトタイプを持つように、その関数が宣言されているヘッダーファイルをインクルードする必要があります。

于 2012-12-21T00:50:45.997 に答える