ऑपरेटर ?:
के उच्च पूर्वता के कारण =
से अधिक, अभिव्यक्ति
a > b ? g = a : g = b;
(a > b ? g = a : g) = b;
अभिव्यक्ति (a > b ? g = a : g)
के रूप में पार्स किया जाएगा एक rvalue दे देंगे। असाइनमेंट (=
) ऑपरेटर के बाईं संकार्य एक lvalue (परिवर्तनीय ) होना चाहिए।
बदलें
a > b ? g = a : g = b ;
को
a > b ? (g = a) : (g = b);
या
g = a > b ? a : b;
। सी 11-§6.5.16/2: एक असाइनमेंट ऑपरेटर के पास बाएं ऑपरेंड के रूप में एक संशोधित अंतराल होगा।
। §6.3.2.1/1: एक लाभा एक अभिव्यक्ति (शून्य के अलावा किसी ऑब्जेक्ट प्रकार के साथ) है जो संभावित रूप से किसी ऑब्जेक्ट को निर्दिष्ट करता है; 64) यदि कोई लालसा किसी वस्तु को मूल्यांकन करते समय निर्दिष्ट नहीं करता है, तो व्यवहार अपरिभाषित होता है। जब किसी ऑब्जेक्ट को किसी विशेष प्रकार के रूप में कहा जाता है, तो ऑब्जेक्ट को निर्दिष्ट करने के लिए उपयोग किए गए लवल द्वारा निर्दिष्ट किया जाता है। एक संशोधित अंतराल एक अंतराल है जिसमें सरणी प्रकार नहीं है, इसमें अपूर्ण प्रकार नहीं है, इसमें कोई कॉन्स्ट-क्वालिटी प्रकार नहीं है, और यदि यह संरचना या संघ है, तो इसमें कोई सदस्य नहीं है (जिसमें, रिकर्सिव, कोई भी शामिल है) सभी निहित समेकित या संघों का सदस्य या तत्व) एक कॉन्स-क्वालिफाइड प्रकार के साथ।
आपको 'ए> बी' बदलना होगा? जी = ए: जी = बी; 'से' जी = ए> बी? ए: बी; 'या' ए> बी? जी = ए: (जी = बी); ' – pouyan