कोड का निम्न भाग पर विचार करें:सशर्त ऑपरेटर का वैध उपयोग?
if (i & 1) k = 99 - i; else m = 99 - i;
मेरे संकलक शिकायत नहीं है और कोड के इस टुकड़े को क्रियान्वित करने देता है:
int i, k, m;
k = 12;
m = 34;
for (i = 0; i < 2; i++) ((i & 1) ? k : m) = 99 - i;
printf("k: %ld m: %ld\n\n", k, m);
इस मूर्खतापूर्ण उदाहरण में, सशर्त ऑपरेटर अभिव्यक्ति के लिए एक शॉर्टकट है अपेक्षित आउटपुट
k: 98 m: 99
मेरा प्रश्न, हालांकि, यह सी मानक के अनुसार मान्य कोड है? मैंने पहले कभी भी ऐसा कुछ नहीं देखा है।
हो जाता है। हालांकि, आपको खुद से पूछना चाहिए कि क्या आप इस तरह के कोड को बनाए रखना चाहते हैं, खासकर यदि यह कुछ सालों तक छुआ नहीं है और आपको यह पता लगाना होगा कि सड़क पर 5 साल बाद आप क्या करते हैं। –