我使用函数写一个服务器char* inet_ntoa(struct in_addr in),当我包括报头
<sys/socket.h>和<netinet/in.h>,可执行的二进制可以用编译器警告生成,但段发生故障,当程序处理从返回字符串inet_ntoa.但是当我添加标题时,<arpa/inet.h>,一切似乎都没问题.
怎么了?
Pio*_*zmo 12
arpa/inet.h包含声明char* inet_ntoa(struct in_addr in).如果您不包含此标头,则编译器将使用隐式声明int inet_ntoa().错误的声明很容易导致段错误,特别是如果您在系统中sizeof(int)!=sizeof(void*).
如果您正在使用gcc,可以添加-Wall标记.gcc会警告你在没有明确声明的情况下使用函数.
| 归档时间: |
|
| 查看次数: |
12125 次 |
| 最近记录: |