यह काम करता है:
struct LD__32 {struct LD__32 * ld; }; लेकिन ऐसा नहीं है: <पूर्व> struct LD_32 {struct LD_32 ld; }; ऐसा क्यों है? मैं इसे सी + + कोड के रूप में संकलित कर रहा था जैसे कि पीएमजी अनुमान लगाया गया था। संपादित करें
सी में एक संरचना अपूर्ण प्रकार से सदस्य नहीं हो सकती।
इन में उत्तरार्द्ध मामले में आप LD_32 ld; परिभाषित कर सकते हैं LD_32 परिभाषा के अंदर क्योंकि struct LD_32 उस बिंदु पर पहले से परिभाषित नहीं है। < / P> सी
अनुभाग 6.7.2.1/2
एक संरचना या संघ में संरचना पर constaints बाहर की जाँच करें एक सदस्य को अधूरा या फ़ंक्शन के प्रकार में शामिल नहीं किया जाएगा (इसलिए, एक संरचना में खुद का एक उदाहरण नहीं होगा, लेकिन इसमें एक सूचक को खुद के एक उदाहरण में शामिल किया जा सकता है) , इसके अलावा एक संरचना के अंतिम सदस्य को छोड़कर एक नामित सदस्य अधूरा एआरए प्रकार हो सकता है; ऐसी संरचना (और किसी भी संघ जिसमें सम्मिलित हो, संभवतया एक पुनरावर्ती सदस्य, ऐसी संरचना है) संरचना या किसी तत्व का एक अंश नहीं होगा।
Comments
Post a Comment