2012-09-12 106 views
1
struct ifreq { 
    char ifr_name[IFNAMSIZ];    
    union { 
      caddr_t ifr_d; 
    } ifr; 
}; 

在這裏,他們使用了union,我沒有明白爲什麼只有一個元素在那裏使用時才使用它? 如果有2-3個元素需要使用,我有一個使用聯合的想法。以下工會意味着什麼?

謝謝

回答

3

負載的可能性。但是,在這種情況下,它看起來像是因爲定義已經從相應的Linux標題中刪除了,並且他們只需要它們所需的部分。 struct ifreq看起來像這樣,通常是:

struct ifreq { 
    char ifr_name[IFNAMSIZ]; /* Interface name */ 
    union { 
     ... 
    }; 
};