2012-03-23 5 views
5

का अर्थ फ़ंक्शन पैरामीटर में चर से पहले इन कीवर्ड का अर्थ क्या है?__in, __out, __in_opt

  • __in
  • __out
  • __in_opt
+1

वे कीवर्ड नहीं हैं, माइक्रोसॉफ्ट के एसएएल एनोटेशन – Necrolis

+0

धन्यवाद, इसका मतलब है कि इसका कोई असर नहीं है? – Zcube

+0

कंपाइलर नंबर के लिए, कोडर के लिए उसे एपीआई का सही ढंग से उपयोग करने में मदद करनी चाहिए। – Necrolis

उत्तर

9

उन के पुराने सजावट मैक्रो के माइक्रोसॉफ्ट के साल एनोटेशन से (the newer ones अब अलग आवरण का पालन करें, एक पूंजी के साथ शुरू) हैं। इन्हें संकलन पर कोई वास्तविक प्रभाव नहीं पड़ता है (वीएस 2010 के तहत वे भी विस्तारित नहीं होते हैं), वे इनलाइन एपीआई दस्तावेज के लिए हैं।

  1. __in: यह पैरामीटर फ़ंक्शन में एक इनपुट है (केवल पढ़ने के लिए, कॉलर प्रारंभ किया गया)।
  2. __out: इस पैरामीटर में फ़ंक्शन से आउटपुट होता है जब यह लौटाता है (केवल-लिखने वाला, कॉलर प्रारंभ होता है)।
  3. __in_opt: एक यौगिक एनोटेशन, _in और _opt से गठित _opt संकेत मिले हैं कि पैरामीटर वैकल्पिक है और एक डिफ़ॉल्ट मान (आम तौर पर NULL) के लिए सेट किया जा सकता है।

आप पुराने सजावट here के बारे में पूर्ण स्पष्टीकरण प्राप्त कर सकते हैं।

+0

यह बहुत विस्तृत धन्यवाद बहुत बहुत धन्यवाद है। मैंने अब बहुत समय से खोज की है, मुझे अंत में जवाब मिला। – Zcube

3

जैसा कि नेरकोलिस द्वारा उत्तर दिया गया है, ये एसएएल एनोटेशन विशेषताओं हैं। हालांकि, ये सिर्फ आंतरिक या केवल API दस्तावेज़ के लिए नहीं हैं। वास्तविक उद्देश्य कोड विश्लेषण के लिए है। जब आप /analyze कंपाइलर विकल्प (प्रोजेक्ट प्रॉपर्टीज, कोड विश्लेषण -> सामान्य) के साथ प्रोजेक्ट बनाते हैं, तो कोडिंग समस्याओं को ढूंढने में ये महत्वपूर्ण भूमिका निभाते हैं।

उदाहरण के लिए, यदि कोई विशेष सूचक तर्क __in कहता है तो इसे एक शून्य सूचक नहीं पारित किया जाना चाहिए। समारोह शून्य के लिए जांच नहीं करेगा और एसईएच का कारण बन सकता है। __in_opt तर्क शून्य हो सकता है। जब कंपाइलर को कुछ समस्या मिलती है, तो यह इसे चेतावनी के रूप में रिपोर्ट करती है। this article देखें।

संबंधित मुद्दे