cppcheck
उत्तर
आप सभी एमआईएसआरए/जेएसएफ नियमों और निर्देशों को सीपीपीकेक नियमों के रूप में लागू करने में सक्षम नहीं होंगे, ज्यादातर सीधी भाषा सुविधाओं और निर्माणों को प्रतिबंधित करने वाले केवल सीधा व्यक्ति या शैली से संबंधित (कुछ जो दिमाग में आते हैं: कुछ पहले/बाद ./->, एक पंक्ति पर तर्कों के #, यूनियनों का उपयोग स्मृति तक पहुंचने के विभिन्न तरीकों, बिना हस्ताक्षर किए गए/हस्ताक्षर किए गए पहले, आदि की उपस्थिति)।
उपयोगकर्ता Ira Baxter इसे एक अन्य प्रश्न पर comment में बहुत अधिक खींचा गया है cppcheck को छूने: किसी भी पैटर्न को पैटर्न के रूप में प्रदर्शित/सरलीकृत नहीं किया जा सकता है। कस्टम नियम के लिए पैटर्न पर भरोसा करना मुश्किल संभालने के लिए और प्रकार पर प्रकार(जैसे sizeof() करने के लिए उच्च स्तर के मुद्दों, उदाहरण के लिए संबंधित पता लगाने के लिए बनाता है; आप पार्स और टोकन (typedefs, enums इकट्ठा करने के लिए) के रूप में इस्तेमाल होता है एक प्रकार प्रतिनिधित्व), विरासत(जैसे कक्षाएं, incl। व्युत्पन्न हैं, दोनों के रूप में आभासी और गैर आभासी) इस्तेमाल किया, और गुंजाइश। उनको cppcheck में हार्ड-कोड करने की आवश्यकता है (आप हमेशा cppcheck कांटा कर सकते हैं ...)
किसी भी मामले में, क्या आपने मिसा (या जेएसएफ) नियमों को छुआ है? क्या यह एक परियोजना के लिए एक आवश्यकता है? यदि नहीं, तो आप मिसरा दिशानिर्देशों की एक प्रतिलिपि ले सकते हैं (आपके पास पहले से ही जेएसएफ हैं) और पीसीआर पैटर्न का उपयोग करके जिन्हें आप कार्यान्वित कर सकते हैं उसे जांचें। यदि यह एक आवश्यकता है, तो मैं आपको एक वाणिज्यिक उत्पाद में "निवेश" का सुझाव देता हूं जो एमआईएसआरए/जेएसएफ दिशानिर्देशों की जांच करता है और दोनों उपकरणों का उपयोग करता है।
एक अंतिम नोट: आपको सभी एमआईएसआरए/जेएसएफ नियमों की आवश्यकता नहीं है, और कई टूल उन लोगों का एक छोटा प्रतिशत छोड़ देते हैं।
पैटर्न मिलान से परे नियमों के लिए आप [clang-tidy] में ढांचे का उपयोग कर सकते हैं (http: //clang.llvm .org/अतिरिक्त/बजना-tidy.html)। – legalize
@johnwait एक विशिष्ट नियम सेट की आवश्यकता नहीं थी, लेकिन नियमों का एक औपचारिक सेट होना था (!) और यदि आपके पास नियम हैं तो आपके पास जांच करने का एक स्वचालित तरीका भी हो सकता है। अंत में हमने अपनी सूची लिखी और कोड समीक्षा की –
मैं जो कह सकता हूं उससे, दस्तावेज़ीकरण को देखकर, यह बहुत खुलासा दिखता है। http://cppcheck.sourceforge.net/manual.pdf।
डीटीएसकोड, धन्यवाद, लेकिन मैनुअल के पास "मिसरा" या "जेएसएफ" नियमों का कोई पूर्वनिर्धारित सेट नहीं है ... – osgx
- 1. cppcheck
- 2. cppcheck विश्लेषण
- 3. Cppcheck: तृतीय पक्ष शीर्षलेख फ़ाइलों की निर्देशिका को कैसे छोड़ें?
- 4. cppcheck में फ़ाइलें शामिल नहीं हो सकती हैं
- 5. सीपीके चेक
- 6. मैं 'std :: deque' पर ऑपरेटर <का उपयोग क्यों नहीं कर सकता?
- 7. स्वचालित रूप से समान लगातार एसटीडी का पता लगाने :: स्ट्रिंग को खोजने ::() कॉल
- 8. सीपीपी चेक इस स्थैतिक कॉन्स सरणी के लिए सीमा त्रुटि से सरणी का उपयोग क्यों करता है?
- 9. क्या मुझे वास्तव में स्पष्ट कीवर्ड को बड़े पैमाने पर पेश करना चाहिए?
- 10. क्या सीए ऑपरेटर और सी में अनुमानित मूल्यांकन के साथ मूल्यांकन का आदेश है?
- 11. क्या मुझे रैंड() या rand_s() का उपयोग करना चाहिए?
- 12. क्या दृश्य सी ++
- 13. सी ++ काम के लिए सोनार विश्लेषण कैसे करें?
- 14. बेज़ेल
- 15. गतिशील सरणियों: स्मृति के बिना realloc() का उपयोग कर लीक
- 16. सी ++ निरंतर एकीकरण के लिए बिल्डबॉट बनाम हडसन/जेनकींस
- 17. पार्स किए गए बूस्ट को कहां खोजें। ग्रहण
- 18. सी ++ प्रोग्राम हमेशा क्रैश जबकि एक std :: स्ट्रिंग आवंटित
क्या आप कोड में __error__ या __style__ समस्या को देखना चाहते हैं? –
उदाहरण के लिए, [मिसरा] (http://en.wikipedia.org/wiki/MISRA_C) सी भाषा का मजबूत सबसेट है, यह असुरक्षित निर्माण को प्रतिबंधित कर सकता है। जैसा विकी कहते हैं: "अधिकांश दिशानिर्देशों को उन टूल का उपयोग करके चेक किया जा सकता है जो स्थिर कोड विश्लेषण करते हैं।" लेकिन वहां सूचीबद्ध उपकरण वाणिज्यिक हैं। एमआईएसआरए कोड को त्रुटि मुक्त नहीं करेगा, लेकिन मिस्रा-पुष्टिकरण कोड में कुछ त्रुटियां लिखना मुश्किल है। मिसा चेकिंग ज्यादातर शैली की जांच है, लेकिन अभी भी उपयोगी है। – osgx