कॉलर आपका कोड है, तो यह सब आपके ऊपर है। यदि कॉलर आपके नियंत्रण में नहीं है, तो आपको या तो अपने मौजूदा सम्मेलन का पालन करना होगा या अपने स्वयं के सम्मेलन को एक साथ विकसित करना होगा।
उदाहरण के लिए, x86 प्लेटफ़ॉर्म पर जब फ़्लोटिंग-पॉइंट अंकगणित एफपीयू निर्देशों द्वारा संसाधित किया जाता है, तो फ़ंक्शन का परिणाम एफपीयू रजिस्टर स्टैक पर शीर्ष मान के रूप में वापस कर दिया जाता है। (यदि आप जानते हैं, x86 एफपीयू रजिस्ट्रारों को "सर्कुलर स्टैक" प्रकार में व्यवस्थित किया जाता है)। उस समय यह न तो float
और न ही double
है, यह आंतरिक एफपीयू परिशुद्धता (जो float
या double
से अधिक हो सकता है) के साथ संग्रहीत मूल्य है और यह कॉलर की जिम्मेदारी एफपीयू स्टैक के शीर्ष से उस मूल्य को पुनर्प्राप्त करने और इसे जो कुछ भी परिवर्तित करने के लिए है इच्छाओं को टाइप करें। असल में, यह एक सामान्य एफपीयू निर्देश कैसे काम करता है: यह एफपीयू स्टैक के शीर्ष से अपने तर्क लेता है और परिणाम को वापस एफपीयू स्टैक पर धक्का देता है। अपने कार्य को उसी तरह कार्यान्वित करके, आप अनिवार्य रूप से अपने कार्य के साथ "जटिल" एफपीयू निर्देश का अनुकरण करते हैं - इसे करने का एक प्राकृतिक तरीका।
जब फ्लोटिंग-पॉइंट अंकगणित एसएसई निर्देशों द्वारा संसाधित किया जाता है, तो आप उसी उद्देश्य के लिए कुछ एसएसई रजिस्टर चुन सकते हैं (xmm0
का उपयोग करें जैसे कि आप पूर्णांक के लिए EAX
का उपयोग करते हैं)।
जटिल संरचनाओं के लिए (यानी जो एक रजिस्टर या रजिस्टरों की एक जोड़ी से बड़े हैं), कॉलर सामान्य रूप से फ़ंक्शन में आरक्षित बफर को पॉइंटर पास करेगा। और समारोह परिणाम को बफर में डाल देगा। दूसरे शब्दों में, हुड के तहत, कार्य वास्तव में बड़ी वस्तुओं को "वापस" नहीं करते हैं, बल्कि उन्हें कॉलर द्वारा प्रदत्त मेमोरी बफर में बनाते हैं।
बेशक, आप किसी भी प्रकार के मानों को वापस करने के लिए इस "मेमोरी बफर" विधि का उपयोग कर सकते हैं, लेकिन छोटे मानों के साथ, यानी स्केलर प्रकार के मान, स्मृति स्थान की तुलना में रजिस्टरों का उपयोग करना अधिक कुशल है। यह बीटीडब्ल्यू, छोटे संरचनाओं के लिए भी लागू होता है।
Enums आमतौर पर कुछ पूर्णांक प्रकार पर एक वैचारिक आवरण होते हैं। तो, एक enum या एक पूर्णांक लौटने के बीच कोई अंतर नहीं है।
यदि आप "मानक तरीका" जानना चाहते हैं, तो आपको अपना मंच निर्दिष्ट करना होगा। क्या हार्डवेयर, ओएस, और आप किस कंपाइलर का उपयोग कर रहे हैं? –
@StephenCanon मुझे नहीं पता था कि जब मैंने प्रश्न पोस्ट किया था तो उनसे संबंधित हैं। धन्यवाद। – smwikipedia