【发布时间】:2015-01-13 13:17:59
【问题描述】:
这里是代码片段:
ip.h
typedef union _ip_t{
struct _dot_ip {
unsigned char f4;
unsigned char f3;
unsigned char f2;
unsigned char f1; //the first field
}dot_ip;
unsigned int int_ip;
}ip_t;
ip.c
ip_t
get_mask(int sub_len)
{
assert(sub_len > 0 || sub_len < 32);
ip_t ret;
ret.int_ip = ~((1 << (32 - sub_len)) - 1);
return ret;
}
main.c
ip_t mask;
mask = get_mask(24);
然后是错误:
错误:从类型“int”分配给类型“ip_t”时类型不兼容
mask = get_mask(24);
我不知道哪里错了,任何帮助将不胜感激
PS:gcc 版本:gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
【问题讨论】:
-
这里没问题ideone.com/hrcOCE
-
请注意,以下划线字符开头的标识符是为实现保留的,不应在您自己的代码中使用。
-
感谢剩余的@5gon12eder
标签: c