मैं निम्नलिखित संघ का उपयोग बाइट, निबल और बिट आपरेशन को आसान बनाने:सी ++ गुमनाम structs
union Byte
{
struct {
unsigned int bit_0: 1;
unsigned int bit_1: 1;
unsigned int bit_2: 1;
unsigned int bit_3: 1;
unsigned int bit_4: 1;
unsigned int bit_5: 1;
unsigned int bit_6: 1;
unsigned int bit_7: 1;
};
struct {
unsigned int nibble_0: 4;
unsigned int nibble_1: 4;
};
unsigned char byte;
};
यह अच्छा काम करता है, लेकिन यह भी इस चेतावनी उत्पन्न करता है:
चेतावनी: आईएसओ सी ++ गुमनाम पर प्रतिबंध लगाता है structs [-pedantic]
ठीक है, जानना अच्छा है। लेकिन ... इस चेतावनी को मेरे जी ++ आउटपुट से कैसे प्राप्त करें? क्या इस मुद्दे के बिना इस संघ की तरह कुछ लिखने की संभावना है?
क्यों बस अपने struct का नाम नहीं? –
आप वैध सी ++ के क्षेत्र में जो भी करने की कोशिश कर रहे हैं वह करने में सक्षम नहीं होंगे। यह काम कर सकता है, लेकिन यह अपरिभाषित व्यवहार होगा। –
मैं इसे नाम दे सकता हूं - उदाहरण के लिए संरचना nibbles और इसे एक संघ का एक क्षेत्र बनाते हैं। लेकिन फिर मुझे इसे Byte.nibbles.nibble_0 तक पहुंचाना होगा। यह उपयोग करने के लिए इतना अच्छा नहीं होगा;)। – Dejwi