从类型'unsigned int'分配类型'struct in_addr'时不兼容的类型

时间:2015-12-19 05:07:16

标签: c linux ip-address ipv4

我正在使用Linux进行编译。在struct ip(对于IPv4)中,当我尝试将值设为ip1.ip_dst = 0xffffffff;时,会出现以下错误:

  

错误:从类型'unsigned int'type_ip_dst = 0xffffffff中分配类型'struct in_addr'时出现不兼容的类型;`

我应该为struct in_addr数据类型的变量赋予什么值?我该如何解决这个错误?

2 个答案:

答案 0 :(得分:2)

in_addr是一个只有unsigned long成员的结构:

struct in_addr ip_dest;
ip_dest.s_addr = 0xffffffffL;

答案 1 :(得分:1)

我认为在Linux中,

typedef uint32_t in_addr_t;

struct in_addr {
    in_addr_t s_addr;
};

您可能希望将您的值转换为(uint32_t)

详细了解:http://linux.die.net/man/3/inet