2011-06-10 60 views
3

可能重複:
C: Where is union practically used?實際使用

我知道聯盟的概念,但我沒有看到,我應該使用現實世界編碼的實際情況聯合數據結構。如果你們可以給我一些示例或教程,以正確顯示使用聯合的案例,我將非常感激。

在此先感謝。

+0

另一個重複:http://stackoverflow.com/questions/724617/examples-of-union-in-c – 2011-06-10 07:51:39

回答

2

我在哪裏經常使用它:解析配置文件我將所有值存儲在union數據類型中。例如。當值可以是int類型或字符串時,我將使用如下數據結構:

struct cval_s { 
    short type; 
    union { 
    int ival; 
    char *cval; 
    } val; 
}; 

在更復雜的問題中,我也使用它們。例如。一旦我爲一種簡單的腳本語言編寫了一個解釋器,並且該語言中的值由包含聯合的結構表示。

3

想象一下有一個struct保留一個值和該值的類型。如果將類型設置爲特定類型,則只需使用union的其中一個成員,而不是在同時使用一個成員時爲其中三個成員浪費空間。

struct { 
    int type; 

    union { 
    int intval; 
    double dval; 
    char cval; 
    } value; 
}