इसलिए मैंने अपने पैर की उंगलियों को सी ++ के लिए स्रोत कोड एनोटेशन में डुबो दिया है, लेकिन पता चला कि रोम के कई तरीके हैं, इसलिए बोलने के लिए।एसएएल एनोटेशन, किस का उपयोग करना है?
उदाहरण:
__in
_In_
[Pre(FormatString(Style="printf")] LPCSTR format
- VS2005 SAL Annotations
- VS2010 Using Annotations to Reduce C/C++ Code Defects
- VS2012 Using SAL Annotations to Reduce C/C++ Code Defects
वहाँ एक माइक्रोसॉफ्ट तरह से यह करने के लिए है?
एसएएल केवल सी ++ के लिए नहीं, सी के लिए संभावित रूप से समझ सकता है। लेकिन मान लें कि माइक्रोसॉफ्ट को 'मेसेजबॉक्स' की गलत टिप्पणियां भी मिली हैं। इसका मतलब है कि एसएएल बेकार जंक से भी बदतर है: इसमें चरम वर्बोजिटी दिखाई देती है जो प्रोग्रामर को धीमा कर देती है, और जो छोटी जानकारी बताती है वह अक्सर गलत होती है (जैसा कि मेरा उदाहरण दिखाता है), इस प्रकार न केवल प्रोग्रामर को धीमा कर देता है बल्कि सक्रिय रूप से उन्हें भ्रामक बनाता है। तो सी के लिए भी मैं कहूंगा कि यह एसएएल का उपयोग करने के लिए सुंदर * काउंटर-उत्पादक * है। ** बस कहें नहीं! ** –
@ चीयर्संधथ.-अल्फ मैं उपयोगकर्तालैंड कोड के लिए बात नहीं कर सकता, लेकिन एसएएल वास्तव में ड्राइवरों के लिए काफी फायदेमंद है। विशेष रूप से '_IRQL' एनोटेशन – brc
@brc: उहम, मैंने इसे देखा। प्रश्न के अलावा "एसएएल गारंटी प्राप्त करने का एकमात्र तरीका होगा" यह बहुत जटिल दिखता है, जबकि खुद में अनुरोध स्तर को बाधित करना एक साधारण बात है। इसलिए यह मुझे COM में थ्रेडिंग के लिए माइक्रोसॉफ्ट के "अपार्टमेंट" जोड़ा-जटिलता योजना की दृढ़ता से याद दिलाता है। कई लोगों ने सोचा कि सार्थक था। कई लोग अभी भी सोचते हैं उदा। 'विनमेन' (अभी जोड़ा गया है, काउंटर-उत्पादक अर्थहीन जटिलता) एक अच्छा विचार है। इसलिए, मुझे दृढ़ता से संदेह है कि एसएएल _आईआरसीएल एनोटेशन के लिए भी मामला है: कि वे केवल जटिलता और अपवित्रता को जोड़ते हैं। –