2012-09-10 25 views
7

हम अज्ञात structs और संघों का उपयोग कहां कर सकते हैं?कौन से मानकों सी और सी ++ में अज्ञात structs और संघों की अनुमति देता है?

struct 
{ 
    int bar; 
}; // anonymous struct 

union 
{ 
    int bar; 
}; // anonymous union 

मुझे लगता है कि हम निम्नलिखित मानकों में यह कर सकते हैं:

  • यूनियनों - सी ++ 98, सी ++ 03, सी ++ 11, सी 11

  • structs - सी 11

क्या मैं सही हूँ या नहीं

+2

जीसीसी सी 99 में एक जीएनयू एक्सटेंशन –

+0

के रूप में अज्ञात यूनियनों का भी समर्थन करता है 'आपके द्वारा प्रदान की गई' संरचना 'और' यूनियन 'उदाहरण की शैली केवल तभी समझ में आती है जब आप इसे किसी अन्य' संरचना '/' संघ 'में रखते हैं। क्या यह संदर्भ आप के बारे में बात कर रहे हैं? – cha0site

+0

@ cha0site हाँ, निश्चित – FrozenHeart

उत्तर

5

सी के बारे में कथन सही है: अनाम structs और यूनियनों का मानकीकरण बहुत नया है (सी 11) cfr. GCC man

ध्यान दें कि आपका पसंदीदा कंपाइलर उन सुविधाओं को वर्तमान समर्थित मानक (जैसे जीएनयू सी 99 एक्सटेंशन) के एक्सटेंशन के रूप में सक्षम कर सकता है।

फिर, पुराने चश्मा की जांच करते हुए, ऐसा लगता है कि 1998 से अज्ञात यूनियनों को C++ में समर्थित किया गया है।

यह सामान्य ज्ञान है कि अज्ञात structs को C++ में प्रतिबंधित किया गया है और मुझे कोई संशोधन नहीं मिला। Visual studio 2012 के रूप में, C++ इस सुविधा का समर्थन नहीं करने की पुष्टि की गई है।

+0

धन्यवाद! और सी ++ के बारे में क्या? – FrozenHeart

+0

मैंने जवाब अपडेट किया। – ziu