निम्नलिखित सी कोड ले लो के आदेश (। कश्मीर & आर पीजी 77):सी #: समारोह मूल्यांकन (सी बनाम)
push(pop() - pop()); /* WRONG */
पुस्तक का कहना है कि जब से -
और /
विनिमेय नहीं ऑपरेटरों, कर रहे हैं आदेश जिसमें 2 pop
फ़ंक्शंस का मूल्यांकन किया जाता है (स्पष्ट रूप से, सही परिणाम प्राप्त करने के लिए) ... और इस प्रकार आपको पहले चर के परिणाम को पहले एक चर में रखना होगा और फिर अंकगणित के साथ आगे बढ़ना होगा, जैसे:
op2 = pop();
push(op2 - pop());
जाहिर है इस वजह से संकलक गारंटी नहीं दे सकते का क्रम कार्यों का मूल्यांकन किया जाता (... क्यों?)
मेरा प्रश्न, सी # इस एक ही बात करता है है? जैसा कि, सी # के साथ काम करते समय मुझे इस तरह की चीज के बारे में चिंता करने की ज़रूरत है? और उस मामले के लिए, अन्य उच्च स्तर की भाषाओं में से कोई भी?
क्यों, सी कंपाइलर को किसी भी पक्ष का मूल्यांकन करने की अनुमति देने से पहले इसे उत्पन्न होने वाली मशीन भाषा कोड को बेहतर अनुकूलित करने की अनुमति दी गई। आपके पास पहले से ही एक रजिस्टर में अपने समीकरण के दाईं ओर से एक चर हो सकता है और पहले इसका उपयोग करना चाहता हूं। मल्टी-कोर, मल्टी-कैश सीपीयू के साथ, एक लाइन को सुनिश्चित करने के बाद भी एक पंक्ति को जानबूझकर ध्यान देने की आवश्यकता होती है ... –
एफडब्ल्यूआईडब्ल्यू, आप यहां सी # विनिर्देश के लिए अपना रास्ता खोज सकते हैं: http://msdn.microsoft.com/en-us /library/ms228593.aspx यह अत्यधिक लंबा नहीं है, और बहुत कम नहीं है। :) –