मेरे पास तीन कोड स्निपेट हैं। यह एक:अल्पविराम के साथ यह डबल प्रारंभिक क्यों अवैध है?
1,7; //yes, that's all the code
ठीक है। यह एक:
double d = (1, 7);
भी ठीक संकलित करता है। फिर भी यह एक:
double d = 1, 7;
संकलन करने में विफल रहता है। जीसीसी-4.3.4 कहते
error: expected unqualified-id before numeric constant
और विजुअल C++ 10 कहते हैं
error C2059: syntax error : 'constant'
क्यों इस तरह के अंतर है? सभी तीनों में ,
के साथ सभी तीनों में समान प्रभाव क्यों नहीं है?
मुझे लगता है कि व्याकरण वास्तव में काफी 'इलाज के लिए डबल d = 1, 7 बालों होगा,' एक भी declarator, '1 के साथ, 7' प्रारंभकर्ता अभिव्यक्ति के रूप में के रूप में है, जबकि' इलाज डबल घ = 1, ई = 7; 'दो घोषणाकर्ताओं के रूप में। या आप आगे भी जाएंगे, और कहेंगे कि अगर पहले से ही 'e' गुंजाइश है तो' डबल डी = 1, ई = 7; '* * को * एक घोषणाकर्ता के रूप में भी माना जाना चाहिए, प्रारंभकर्ता अभिव्यक्ति' 1, ई के साथ = 7'? मैं भ्रम के लिए बहुत सारी संभावनाएं देखता हूं, बस 'डबल डी = (1, 7) मामले में कुछ माता-पिता टाइप करने के लिए;' जो वैसे भी व्यर्थ है। –