मान लें कि मैं सी या सी ++ में char c[99] = {'Stack Overflow'};
लिखता हूं। यह ठीक संकलित करता है लेकिन क्या यह मान्य है? वैध रूप से मेरा मतलब किसी भी तरह के अपरिभाषित या अनिर्दिष्ट व्यवहार का आह्वान नहीं करना था।क्या यह एक वैध सी कथन है?
फिर से अगर मैं char c[99] = 'Stack Overflow';
लिखता हूं तो जीसीसी मल्टीचार्टेर स्थिरता के बारे में शिकायत करता है जो स्पष्ट है लेकिन उपरोक्त में जब मैं घुंघराले ब्रैकेट कंपाइलर के भीतर संलग्न हूं तो खुश है! ऐसा क्यों है?
मुझे यह भी पता चलता है कि puts(c);
पहले कथन के बाद Stack Overflow
के सामान्य स्ट्रिंग के सटीक चरित्र को 'w' आउटपुट करेगा। ऐसा क्यों?
क्या कोई इन व्यवहारों को अलग से समझा सकता है?
इसे संकलित करें और पता लगाएं। – Falmarri
उसने पहले ही कहा है कि उसने इसे संकलित किया है ... – indiv
@ फाल्मररी: मुझे लगता है कि आप आरटीएफक्यू पुरस्कार जीतते हैं। उन्होंने कहा "यह ठीक संकलित करता है" और आउटपुट का भी वर्णन करता है, जाहिर है कि उसने इसका परीक्षण किया था। लेकिन परीक्षण आपको यह नहीं बताता है कि यह मानक द्वारा पोर्टेबल या अच्छी तरह परिभाषित है या नहीं। –