2012-06-14 27 views
8

उपयोग में मौजूदा सदस्य के लिए परीक्षण किया है क्या यूनियनों का नियंत्रण करने के लिए नियंत्रण संरचना है कि वर्तमान में कौन सा सदस्य उपयोग में है (या यदि यह बिल्कुल है)? मैं यह पूछ रहा हूं क्योंकि अपरिभाषित व्यवहार आपके कार्यक्रम में कभी भी अच्छी बात नहीं है।यूनियन ने

उत्तर

12

नहीं, ऐसा कोई तंत्र ऑफ-द-शेल्फ मौजूद नहीं है। आपको खुद का ख्याल रखना होगा। सामान्य दृष्टिकोण एक struct में union लपेटकर है:

struct MyUnion 
{ 
    int whichMember; 
    union { 
     //whatever 
    } actualUnion; 
}; 

तो तुम MyUnion x; है और x.whichMember आपको बताता है x.actualUnion का जो क्षेत्र (आप हालांकि कार्यक्षमता को लागू करना) उपयोग में है।

+3

+1: इस प्रकार की संरचना को अक्सर "भेदभाव संघ" या "टैग किया गया संघ" कहा जाता है। –

+0

हां, मैंने एक समान दृष्टिकोण के बारे में सोचा, लेकिन क्योंकि मैं स्वयं निर्मित लोगों के लिए भाषा संरचना पसंद करता हूं, मुझे बस यह पता होना था कि कोई अस्तित्व में है या नहीं। त्वरित उत्तर के लिए धन्यवाद। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^