Friday, 15 July 2011

function - what will be type where result get stored when expressions are passed as parameters in c -


अगर मैं एक गणितीय अभिव्यक्ति जैसे func (a * b / c) से गुजर रहा हूँ एक डबल हो सकता है, b हो सकता है लंबा int आदि।

क्या इस तरह के मापदंडों को पार करने में कोई समस्या है? यदि परिणामस्वरूप मूल्य बहुत लंबा है तो क्या होगा? फ़ंक्शन पैरामीटर के रूप में अभिव्यक्तियों का उपयोग करने में कोई समस्या?

परिभाषा समारोह के कॉलिंग के साथ एक फ़ंक्शन का परिभाषा क्या argumens प्रकार हैं; कॉलिंग में, संकलक ईमानदारी से अभिव्यक्ति (संकलित) को निष्पादित करता है, इसे फ़ंक्शन के तर्क के उपयुक्त प्रकार के रूप में निर्धारित कर रहा है, जैसा कि इसे परिभाषित किया गया है।

  void func1 (डबल ए); शून्य func2 (int a); ... मज़ाक 1 (2 * 3/3); Func2 (2.0 * 3/3);  

func1 () के लिए पहली कॉल में, अभिव्यक्ति को पूर्णांक के रूप में मूल्यांकन किया जाता है और फिर परिणाम को स्टैक पर डबल के रूप में धकेल दिया जाता है दूसरे कैल में func2 () के लिए अभिव्यक्ति को युगल के रूप में मूल्यांकन किया जाता है और फिर परिणाम को पूर्णांक में डाल दिया जाता है और स्टैक पर धक्का दिया जाता है। दूसरे मामले में कंपाइलर रूपांतरण में सटीकता के संभावित नुकसान के बारे में चेतावनी दे सकता है; पहले मामले में यह ऐसी चेतावनी जारी नहीं करेगा क्योंकि सभी पूर्णांक परिणाम दोहराएंगे।


No comments:

Post a Comment