2012-12-03 112 views

回答

0

好吧,它看起来只是保留在结构中的遗留代码来保持其结构。

+0

iface.h头在FreeBSD发现only..not在linux ??你能告诉我在Linux的iface.h路径吗? – getz

0

struct ifaddr是不完整的类型,这意味着代码将被编译,但是如果您取消引用指向struct iface的指针或进行任何其他赋值,则会产生错误。如前所述,struct iface仅出于传统原因而保留在主体结构中。

struct ifaddr 
    { 
    struct sockaddr ifa_addr; /* Address of interface. */ 
    union 
     { 
     struct sockaddr ifu_broadaddr; 
     struct sockaddr ifu_dstaddr; 
     } ifa_ifu; 
    struct iface *ifa_ifp;  /* Back-pointer to interface. */ 
     struct manav p[8]; 
    struct ifaddr *ifa_next; /* Next address for interface. */ 
    }; 

参见:dereferencing pointer to incomplete type